ある日「Unicode+BOMつきってやつでテキスト出力」してねって話がきたの。
よくよく聞いてみると、そうするとエクセルにポッと落とすだけで開くんだって。
サンプルをもらって確認してみたら、UTF-8(リトルエンディアン)+BOMだったのね。この形式でタブ区切りテキスト出力すれば、ぽんとエクセルに投げ込むだけでひらくっぽいのよね。
じゃあ、Rubyでやってみますか。
タブ区切りテキストの作り方は簡単だろうから、ここでは触れないわ。 s は配列で、中にはUTF-8で書かれたデータが入っているのね。outfileが出力先よ。
BOMっていうのはよくわからないけど、どうもファイルの先頭に「Unicodeだぜい」と識別するUnicode文字を埋め込むやり方みたいなのよね。
でもこれ想像つくと思うけど、たまに悪さするのよね。
たとえばコード変換でひっかかる事があるらしくて、このへん知らずにJava屋さんとかがCP932に変換しようとしてハマってる記事がたくさんひっかかるわ。こういうのは 多言語処理のおもしろエピソード(当人たちは笑えない) ってやつのひとつだから、ググッてみると面白いかも。
open(outfile,"w:UTF-16LE") do |w| w.write "\uFEFF" # BOM w.write s.join("\n") end
これでイケると思うわ。