我想从正在修改模块Spreadsheet::ParseExcel::SaveParser
的现有xls文件中删除工作表。我在CPAN网站上找不到任何东西。我找到了一个代码,可以从末尾删除工作表,但我想根据其名称删除工作表。我正在附加代码。请在该代码中也解释拼接命令。谢谢这是我找到的链接:
https://www.perlmonks.org/?node_id=722716
#!/usr/bin/perl -w use strict; use Spreadsheet::ParseExcel; use Spreadsheet::ParseExcel::SaveParser; my ($INFILE,$OUTFILE)=("in.xls","out.xls"); my $oExcel = new Spreadsheet::ParseExcel::SaveParser; my $oBook = $oExcel->Parse($INFILE); splice(@{$oBook->{Worksheet}},1,1); $oBook->{SheetCount}--; $oExcel->SaveAs($oBook, $OUTFILE);
问题中的Perlmonks链接有所帮助。如果要删除特定工作表,请使用该行
splice(@{$oBook->{Worksheet}},1,1);
其中,第一个表示要从哪个工作表中删除,下一个表示要从偏移量中删除多少个工作表。
这与正常的splice
命令相同。
执行此操作后,使用命令$oBook->{SheetCount}--;
删除工作表。