我要从我正在修改模块Spreadsheet::ParseExcel::SaveParser
的现有 xls文件中删除工作表。我在CPAN网站上找不到任何内容。我找到了一个从末尾删除工作表的代码,但我想根据其名称删除工作表。我正在附上代码。请在该代码中也说明splice命令。谢谢
这是我找到的链接:
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);
答案 0 :(得分:2)
Perlmonks link in the question有帮助。如果要删除特定工作表,请使用该行
splice(@{$oBook->{Worksheet}},1,1);
其中第一个代表您要从哪张纸删除,下一个代表您要从偏移量中删除几张纸。
这与普通的splice
命令相同。
执行完此操作后,使用命令$oBook->{SheetCount}--;
删除工作表。