使用 Spreadsheet::ParseXLSX 删除整行
Delete entire row using Spreadsheet::ParseXLSX
总的来说,我是电子表格解析器的新手,除了主要功能的基本介绍外,在 CPAN 上找不到太多信息。
我正在尝试读取 .xlsx 文件并删除整行,如果 column 2
存在于我过滤的散列中。
然后我想打印出编辑过的文件,也是.xlxs
这是我从 CPAN 中找到的 Spreadsheet::ParseExcel
use strict;
use warnings;
use Spreadsheet::ParseXLSX;
my $parser = Spreadsheet::ParseXLSX->new;
my $workbook = $parser->parse("file.xlsx");
for my $worksheet ( $workbook->worksheets() ) {
my ( $row_min, $row_max ) = $worksheet->row_range();
my ( $col_min, $col_max ) = $worksheet->col_range();
for my $row ( $row_min .. $row_max ) {
# Here I want to delete an entire row if a column 2 of that row matches a value
# sudo code:
# delete 'row' if 'row column 2' exists $hash{$key}
# And then print out the edited .xlsx file
}
}
}
谁能给我一些指点?
Spreadsheet::ParseExcel
是用于此的正确模块吗?
Spreadsheet::ParseXLSX
仅用于阅读电子表格。它没有将数据从 Perl 更新和保存到 Excel 电子表格的工具。
还有像Spreadsheet::WriteExcel
and Excel::Writer::XLSX
这样的模块,可以写电子表格但不能读。
但是把它们放在同一个脚本中?退后一步,看着奇迹发生。
总的来说,我是电子表格解析器的新手,除了主要功能的基本介绍外,在 CPAN 上找不到太多信息。
我正在尝试读取 .xlsx 文件并删除整行,如果 column 2
存在于我过滤的散列中。
然后我想打印出编辑过的文件,也是.xlxs
这是我从 CPAN 中找到的 Spreadsheet::ParseExcel
use strict;
use warnings;
use Spreadsheet::ParseXLSX;
my $parser = Spreadsheet::ParseXLSX->new;
my $workbook = $parser->parse("file.xlsx");
for my $worksheet ( $workbook->worksheets() ) {
my ( $row_min, $row_max ) = $worksheet->row_range();
my ( $col_min, $col_max ) = $worksheet->col_range();
for my $row ( $row_min .. $row_max ) {
# Here I want to delete an entire row if a column 2 of that row matches a value
# sudo code:
# delete 'row' if 'row column 2' exists $hash{$key}
# And then print out the edited .xlsx file
}
}
}
谁能给我一些指点?
Spreadsheet::ParseExcel
是用于此的正确模块吗?
Spreadsheet::ParseXLSX
仅用于阅读电子表格。它没有将数据从 Perl 更新和保存到 Excel 电子表格的工具。
还有像Spreadsheet::WriteExcel
and Excel::Writer::XLSX
这样的模块,可以写电子表格但不能读。
但是把它们放在同一个脚本中?退后一步,看着奇迹发生。