在附加数据的同时在Excel SaveParser中发出

我想创build,然后在Excel文件中使用Perl脚本附加一些数据。 正如许多论坛链接所build议的,我参考了Spreadsheet :: WriteExcel模块链接上提供的示例代码 。 电子表格创build成功,没有问题。

但是,然后我使用第二个脚本来追加一些数据到现有的文件。 我使用Spreadsheet :: ParseExcel :: SaveParser模块,并使用此链接提供的示例代码。 以下是我的代码完全相同的网站上提供的代码:

#!/usr/bin/perl use Spreadsheet::ParseExcel; use Spreadsheet::ParseExcel::SaveParser; use Spreadsheet::WriteExcel; # Open an existing file with SaveParser my $parser = Spreadsheet::ParseExcel::SaveParser->new(); my $template = $parser->Parse('perl.xls'); # Get the first worksheet. my $worksheet = $template->worksheet(0); my $row = 0; my $col = 0; # Overwrite the string in cell A1 $worksheet->AddCell( $row, $col, 'New string' ); # Add a new string in cell B1 $worksheet->AddCell( $row, $col + 1, 'Newer' ); # Add a new string in cell C1 with the format from cell A3. my $cell = $worksheet->get_cell( $row + 2, $col ); my $format_number = $cell->{FormatNo}; $worksheet->AddCell( $row, $col + 2, 'Newest', $format_number ); # Write over the existing file or write a new file. $template->SaveAs('newfile.xls'); 

但是,我得到以下错误:

 Unknown method: Spreadsheet::WriteExcel::Format::set_hidden at <path_to_SaveParser.pm> line 72. 

由于它从内置模块中抛出错误,我一无所知。 没有find一些内置function 。 可能是我必须导入该模块在我的文件(但不知道哪一个!)。 我认为SaveAs子例程存在问题。 以下是模块供参考的片段:

 sub SaveAs($$){ my ($oBook, $sName)=@_; # Create a new Excel workbook my $oWrEx = Spreadsheet::WriteExcel->new($sName); my %hFmt; my $iNo = 0; my @aAlH = ('left', 'left', 'center', 'right', 'fill', 'justify', 'merge', 'equal_space'); my @aAlV = ('top' , 'vcenter', 'bottom', 'vjustify', 'vequal_space'); foreach my $pFmt (@{$oBook->{Format}}) { my $oFmt = $oWrEx->addformat(); # Add Formats unless($pFmt->{Style}) { $hFmt{$iNo} = $oFmt; my $rFont = $pFmt->{Font}; $oFmt->set_font($rFont->{Name}); $oFmt->set_size($rFont->{Height}); $oFmt->set_color($rFont->{Color}); $oFmt->set_bold($rFont->{Bold}); $oFmt->set_italic($rFont->{Italic}); $oFmt->set_underline($rFont->{Underline}); $oFmt->set_font_strikeout($rFont->{Strikeout}); $oFmt->set_font_script($rFont->{Super}); $oFmt->set_hidden($rFont->{Hidden}); #LINE 72 !!! $oFmt->set_align($aAlH[$pFmt->{AlignH}]); $oFmt->set_align($aAlV[$pFmt->{AlignV}]); if($pFmt->{Rotate}==0) { $oFmt->set_rotation(0); } #.... 

Shebang运算符( #! )path似乎没有任何问题,因为它与创buildexcel文件时使用的path相同。 任何人都可以提供一些关于什么可能会出错的指针?