2013-10-07 94 views
2

您好我需要刪除一個名爲'摘要'的工作表,如果它存在於使用Perl的Excel工作簿中。 我第一次解析Excel中的文件內容爲:使用Perl刪除工作簿的工作表

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

現在,如果這個文件有「摘要」工作表中我需要將其刪除。我不能使用Spreadsheet::SimpleExcel,因爲該文件已被打開爲對象 Spreadsheet::WriteExcel/Spreadsheet::ParseExcel,並且處理程序尚未關閉文件。因此,我無法創建Spreadsheet::SimpleExcel的新對象,並指向此Excel並刪除工作表。

有什麼辦法刪除工作表。 我可以在保存工作簿之前刪除工作表,如上面的代碼所示。

回答

0

請試試這個,

我的foreach $表(@ {$模板 - > {工作表}}){

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

}

+0

這沒工作.. – user2854259

+0

@ user2854259:有是沒有直接的方法來刪除Excel表,但你可以使用拼接來做到這一點。 – Kuthbudin

相關問題