みんな大好き Excel ファイルを perl で書くメモ。
perl モジュールの Spreadsheet::WriteExcel を使います。
書いたコードはこんな感じ。
#!/usr/bin/perl
use strict;
use warnings;
use Spreadsheet::WriteExcel;
my $file = "dir/perl.xls";
my $font_name = 'MS UI Gothic';
my $font_size = '11';
my $book = Spreadsheet::WriteExcel->new("$file");
my $sheet = $book->add_worksheet();
my $format0 = $book->add_format(
font => $font_name,
size => $font_size,
bold => 1,
border => 1,
valign => 'vcenter',
align => 'center'
);
my $format1 = $book->add_format(
font => $font_name,
size => $font_size,
bold => 1,
border => 1,
valign => 'vcenter',
align => 'center'
);
my $x = '0';
my $y = '0';
$sheet->merge_range( $x, $y, $x, $y + 2, "write start", $format0 );
$x++;
for (my $i = '0'; $i <= '2'; $i++ ) {
for (my $j = '1'; $j <= '20'; $j++ ) {
$sheet->write( $x, $y + $i, $j, $format1 );
$x++;
}
$x = '1';
}
$book->close();
exit;
これを実行するとこんなやつができます。
Excel の行は $x, 列は $y で指定してます。 A1 は x=0, y=0、B1 は x=0, y=1 って感じです。
セルの結合は、始点 ($x, $y,) と 終点 ($x, $y + 2) のように指定。
最初、セルの位置を数字で考えるのに戸惑ったけど慣れれば簡単。
便利!!
