1

特定の古いバージョンの ActivePerl を使用して、スプレッドシートを読み取る:

use Spreadsheet::ParseExcel;
$excel = Spreadsheet::ParseExcel::Workbook->Parse("some file");
foreach $sheet (@{$excel->{Worksheet}}){
  print $sheet->get_name(); 
}

エラー:Can't locate object method get_name() spreadsheet::parseexcel::worksheet

また$sheet->{name}、何も与えません。

4

3 に答える 3

1
foreach my $sheet ($excel->worksheets) {
    print $sheet->get_name;
}

動作します。worksheetsメソッドを呼び出してWorksheets オブジェクトを取得する必要があります。

于 2012-07-30T13:19:58.567 に答える
1

Spreadsheet::ParseExcelの 0.43 (2009 年 1 月) より前のバージョンには、メソッドがありませんでしたget_name()

Spreadsheet::ParseExcel の最新バージョンにアップグレードすると、コードが機能します。私はそれをテストしました。

ただし、Spreadsheet::ParseExcel::Workbook->Parse()エラー チェックを行わないため、現在は推奨されていません。Spreadsheet::ParseExcel->Parse()代わりに使用してください。

于 2012-07-30T13:36:51.520 に答える
0

$sheet->{Name} (大文字) は、ParseExcel の v0.49 で名前を指定します。

于 2012-07-30T11:00:27.823 に答える