如何使用电子表格::P arseExcel::SaveParser删除现有xls文件中的工作表



我想从正在修改模块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}--;删除工作表。

最新更新