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

How to delete a worksheet in an existing xls file using Spreadsheet::ParseExcel::SaveParser?

我想从我正在修改模块 Spreadsheet::ParseExcel::SaveParser 的现有 xls 文件 中删除作品sheet。我在 CPAN 网站上找不到任何东西。我找到了一个从末尾删除 worksheets 的代码,但我想根据其名称删除 sheet。我附上代码。请也解释该代码中的 splice 命令。谢谢 这是我发现的 link:

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 link in the question 有帮助。如果你想删除特定的 sheet 使用行

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

其中第一个表示您要从中删除 sheet,下一个表示您要从偏移中删除多少 sheet。

这与正常的 splice 命令相同。

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