Perl で Excel
Excel シートの内容を 取得する
↓ こんな Excel ファイルを読む
A | B | C | D | E | F | G | H | I | J | |
---|---|---|---|---|---|---|---|---|---|---|
1 | A1 | B1 | C1 | D1 | E1 | F1 | G1 | H1 | J1 | |
2 | A2 | B2 | C2 | D2 | E2 | F2 | G2 | H2 | J2 | |
3 | A3 | B3 | C3 | D3 | E3 | F3 | G3 | H3 | J3 | |
4 | A4 | B4 | C4 | D4 | E4 | F4 | G4 | H4 | J4 | |
5 | A5 | B5 | C5 | D5 | E5 | F5 | G5 | H5 | J5 | |
6 | J6 | |||||||||
7 | A7 | B7 | C7 | D7 | E7 | F7 | G7 | H7 | I7 | J7 |
lesson004.pl
実行結果
use Win32::OLE;Win32::OLE::CreateObject("Excel.Application", $objExcel) || die "fail! : $!";
$objExcel->{Visible} = 1;
$objExcel->{DisplayAlerts} = 0; #警告メッセージをOFF$objBook = $objExcel->WorkBooks->Open($ARGV[0]);
$objSheet = $objBook->WorkSheets->Item($ARGV[1]);foreach $iRow (1..$objSheet->Cells->CurrentRegion->Rows->Count)
{
@row = ();
foreach $iCol (1..$objSheet->Cells->CurrentRegion->Columns->Count)
{
push @row, $objSheet->Cells($iRow, $iCol)->Value;
}
print join(",", @row), "\n";
}$objBook->Close();
$objExcel->Quit();
C:\>perl c:\study\perl\chapter004\lesson004.pl c:\study\Book1.xls Sheet1
A1,B1,C1,D1,E1,F1,G1,H1
A2,B2,C2,D2,E2,F2,G2,H2
A3,B3,C3,D3,E3,F3,G3,H3
A4,B4,C4,D4,E4,F4,G4,H4
A5,B5,C5,D5,E5,F5,G5,H5