如何使用Spreadsheet :: ParseExcel :: SaveParser删除现有xls文件中的工作表?

时间:2019-06-10 11:18:21

标签: perl spreadsheet xls

我要从我正在修改模块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);

1 个答案:

答案 0 :(得分:2)

Perlmonks link in the question有帮助。如果要删除特定工作表,请使用该行

splice(@{$oBook->{Worksheet}},1,1);

其中第一个代表您要从哪张纸删除,下一个代表您要从偏移量中删除几张纸。

这与普通的splice命令相同。

执行完此操作后,使用命令$oBook->{SheetCount}--;删除工作表。