使用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::WriteExcel
和Excel::Writer::XLSX
这样的模块可以编写电子表格,但不能读取它们。
但把它们放在一起呢? 退后一步,看魔术发生。