みんな大好き 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) のように指定。
最初、セルの位置を数字で考えるのに戸惑ったけど慣れれば簡単。
便利!!