使用Spreadsheet :: ParseXLSX删除整个行

一般来说,我是电子表格parsing器的新手,除了主要function的基本介绍外,在CPAN上找不到更多的信息。

我试图读取一个.xlsx文件,并删除整个行,如果column 2存在一个散列,我过滤。

然后我想用.xlxs打印出一个编辑好的文件

这是我可以从CPANfindSpreadsheet::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电子表格的function。

然后有像Spreadsheet::WriteExcelExcel::Writer::XLSX这样的模块可以编写电子表格,但不能读取它们。

但把它们放在一起呢? 退后一步,看魔术发生。