« Cygterm | メイン | mod_encoding »

Text::CSV_XSとエクセル

Text::CSV_XS
CSVを処理するときに、改行などがついていても、自動的に「"」とかつけてくれるモジュール。

エクセルに取り込むときにべんりかなぁと思って、試した。
はじめ、日本語が通らなくて、なやんだけど、

Text::CSV_XS->new({binary=>1});

で解決。

CSVで取り込みでも(仕様的には)かまわないと思ったのだが、
最終的にはエクセル書き出しにした。
Spreadsheet::WriteExcelXML
数字か、文字列か、日付なのか、セルの種類を決めうちできるのが、便利。


ドキュメントは長いが、使い方はシンプル

my $workbook = Spreadsheet::WriteExcelXML->new("perl.xml");
$worksheet = $workbook->add_worksheet();
$worksheet->write(1,    $col, "Hi Excel!");

オプションいろいろなのでエレガントな出力をしたいときは調べる価値あり。
ただし、OpenOfficeで読み込むと文字化けしてた。