如何从包含超过256列数据的XLSX文件中读取数据

时间:2013-11-08 09:58:59

标签: perl parsing cpan xlsx

如何从包含超过256列数据的XLSX文件中读取数据

尝试使用Spreadsheet::XLSX cpan perl库模块尝试但如果我们尝试读取包含400多列(超过256列)数据的XLSX文件,则无法获得成功。

请提出任何建议。

1 个答案:

答案 0 :(得分:2)

我在第一行中使用带有1403的Excel 2010创建了一个XLSX文件,并将其放在Spreadsheet :: XLSX的示例代码中。它有效:

use Spreadsheet::XLSX;
my $excel = Spreadsheet::XLSX->new( 'Mappe3.xlsx', );

foreach my $sheet ( @{ $excel->{Worksheet} } ) {
  printf( "Sheet: %s\n", $sheet->{Name} );
  $sheet->{MaxRow} ||= $sheet->{MinRow};
  foreach my $row ( $sheet->{MinRow} .. $sheet->{MaxRow} ) {
    $sheet->{MaxCol} ||= $sheet->{MinCol};
    foreach my $col ( $sheet->{MinCol} .. $sheet->{MaxCol} ) {
      my $cell = $sheet->{Cells}[$row][$col];
      if ($cell) {
        printf( "( %s , %s ) => %s\n", $row, $col, $cell->{Val} );
      }
    }
  }
}

__END__

Sheet: Tabelle1
( 0 , 0 ) => 1
( 0 , 1 ) => 2
( 0 , 2 ) => 3
[..] # snipped
( 0 , 252 ) => 253
( 0 , 253 ) => 254
( 0 , 254 ) => 255
( 0 , 255 ) => 256
( 0 , 256 ) => 257
[..] # snipped
( 0 , 398 ) => 399
( 0 , 399 ) => 400
( 0 , 400 ) => 401
( 0 , 401 ) => 402
( 0 , 402 ) => 403
Sheet: Tabelle2
Sheet: Tabelle3

您应该发布您正在使用的代码以及您看到的错误消息。否则我们无法重现这个问题。