Spreadsheet::WriteExcelでexelファイルの生成

一時期読んでいたIntermediate Perlをまたいちから読み直すことにしました。 そこで得た知見を書いて行きたいと思います。 モジュールの説明としてSpreadsheet::WriteExcelというのが出て来てオモシロイと思ったので例を1つ。

John McNamara / Spreadsheet-WriteExcel - search.cpan.org

以下の様なコードを書くと・・・

#!/usr/bin/env perl
use 5.10.0;
use strict;
use warnings;
use Spreadsheet::WriteExcel;

# Create a new Excel workbook
my $workbook = Spreadsheet::WriteExcel->new("perl.xls");

# Add a worksheet
my $worksheet = $workbook->add_worksheet();

$worksheet->write("A1","Hello World");
$worksheet->write(0,1,"Hello Excel");

my $redBackground = $workbook->add_format(
    color => "white",
    bg_color => "red",
    bold=> 1,
);

my $bold = $workbook->add_format(
    bold => 1,
);


$worksheet->write(1,0,"Hello Everyone!",$redBackground);
$worksheet->write(1,1,"Hello Morning",$bold);

perl.xlsという下のようなファイルが出来上がります。

f:id:fakeyakuza:20130526083004p:plain

"A1"のように一般的なセルの指定方法だけでなく、2次元配列のインデックスのようにセル指定出来ます。 セルの背景色や文字スタイルなどを細かく指定できるのもいいですね。 なにか統計情報を生成するときに、csv以上のものが欲しい時に使えそう。 今日はここまで〜。