使用perl删除工作簿的工作表

您好,我需要删除名为“摘要”,如果它存在于Excel工作簿使用Perl的工作表。 我首先parsingexcel文件的内容为:

my $parser = new Spreadsheet::ParseExcel::SaveParser; my $template = $parser->Parse($FileName) or die "$!\n"; $workbook = $template->SaveAs($FileName); 

现在,如果这个文件有'摘要'工作表,我需要删除它。 我不能使用Spreadsheet::SimpleExcel因为文件已经作为Spreadsheet::WriteExcel / Spreadsheet::ParseExcel对象打开,处理程序还没有closures文件。 因此,我不能创buildSpreadsheet::SimpleExcel的新对象,并指向此Excel并删除工作表。

有什么办法删除工作表。 我可以在保存工作簿之前删除工作表,如上面的代码所示。

请试试这个,

foreach my $ sheet(@ {$ template – > {Worksheet}}){

 if($sheet->{Name} eq "summary"){ splice(@{$template->{Worksheet}},$sheet,1); } 

}