我一直在使用Spreadsheet::ParseExcel來列出電子表格的內容。我已經看到了幾個關於如何轉儲整個電子表格的例子。我真的很想看看如何更有選擇地使用這個腳本。需要更多關於如何使用Spreadsheet :: ParseExcel的示例
下面來自IBM的例子基本上轉儲了所有包含數據的單元格的內容。
#!/usr/bin/perl -w
use strict;
use Spreadsheet::ParseExcel;
my $oExcel = new Spreadsheet::ParseExcel;
die "You must provide a filename to $0 to be parsed as an Excel file" unless @ARGV;
my $oBook = $oExcel->Parse($ARGV[0]);
my($iR, $iC, $oWkS, $oWkC);
print "FILE :", $oBook->{File} , "\n";
print "COUNT :", $oBook->{SheetCount} , "\n";
print "AUTHOR:", $oBook->{Author} , "\n"
if defined $oBook->{Author};
for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++)
{
$oWkS = $oBook->{Worksheet}[$iSheet];
print "--------- SHEET:", $oWkS->{Name}, "\n";
for(my $iR = $oWkS->{MinRow} ;
defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ;
$iR++)
{
for(my $iC = $oWkS->{MinCol} ;
defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ;
$iC++)
{
$oWkC = $oWkS->{Cells}[$iR][$iC];
print "($iR , $iC) =>", $oWkC->Value, "\n" if($oWkC);
}
}
}
有人可以給我一個例子,說明如何指定每行的某個列的某些操作?
例如,我有一個包含7列和n行的電子表格。我想以某種方式重新格式化每個列中的數據。也許我想爲每一行取第6列,並將一些文本附加到存儲在單元格中的字符串的末尾。那將如何建立?
我是Spreadsheet :: ParseExcel的維護者,我認爲這是一個很好的例子。 ++ – jmcnamara 2010-07-10 10:43:36
哇,很棒的例子。非常感謝!並感謝你的所有貢獻和這樣的真棒工具! – 2010-07-10 23:25:21
我得到以下內容:無法在./excel-test-new第19行的未定義值上調用方法「值」。 – 2010-07-10 23:57:06