Perl で Excel
Excel のシート名を列挙する
lesson001.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]);
foreach $i (1..$objBook->WorkSheets->Count)
{
print $objBook->WorkSheets($i)->Name, "\n";
}$objBook->Close();
$objExcel->Quit();
C:\>perl c:\study\perl\chapter004\lesson001.pl c:\study\Book1.xls
Sheet1
Sheet2
Sheet3
は、
print $objBook->WorkSheets($i)->Name, "\n";
じゃないかと思うかも知れないが、エラーになる。
print $objBook->WorkSheets[$i]->Name, "\n";
C:\>perl c:\study\perl\chapter004\lesson001.pl c:\study\Book1.xls
syntax error at c:\study\perl\chapter004\lesson001.pl line 15, near "->WorkSheet
s["
Execution of c:\study\perl\chapter004\lesson001.pl aborted due to compilation er
rors.
↓ これでは、だめ
lesson002.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]);
foreach $sheet ($objBook->WorkSheets)
{
print $sheet->Name, "\n";
}$objBook->Close();
$objExcel->Quit();
C:\>perl c:\study\perl\chapter004\lesson002.pl c:\study\Book1.xls