【发布时间】:2012-11-16 02:40:06
【问题描述】:
我正在编写一个解析 Excel 文件的 Perl 脚本。此脚本的目的是计算第 1 列中的每个单元格值,即第 2 列中的值的数量。
例如一个如下所示的 Excel 文件:
12 abc
12 abc
12 efg
12 efg
13 hij
13 hij
13 klm
我的脚本会返回:
对于单元格值 12,我有:
2 values "abc", 2 values "efg" and for cell value 13 i have : 2 values "hij" and 1 value "klm".
我的脚本看起来像这样(我从 perl 文档中获取了这个例子):
use Spreadsheet::XLSX;
my $excel = Spreadsheet::XLSX -> new ('Book1.xlsx');
foreach my $sheet (@{$excel -> {Worksheet}}) {
printf("Sheet: %s\n", $sheet->{Name});
$sheet -> {MaxRow} ||= $sheet -> {MinRow};
foreach my $row ($sheet -> {MinRow} .. $sheet -> {MaxRow}) {
$sheet -> {MaxCol} ||= $sheet -> {MinCol};
foreach my $col ($sheet -> {MinCol} .. $sheet -> {MaxCol}) {
my $cell = $sheet -> {Cells} [$row] [$col];
if ($cell) {
#here I should count the cell values
}
print $cell;
}
}
}
我不知道如何做到这一点,因为我以前从未使用过 perl,而且我无法在网上找到与我想要的完全匹配的示例。任何帮助将不胜感激。 谢谢
【问题讨论】:
-
如果你不介意:为什么是 Perl 而不是 VBA?
-
老实说,这不是我的选择。这是我在公司实习项目的一部分。
-
@Brad:因为简单的事情就应该简单?
-
@runrig 如果您了解 Perl,这很简单,如果您了解 VBA,这很简单。除了 perl 脚本可以与 Excel 文件一起保存/嵌入吗?
-
@Brad:VBA 会解析没有安装 Excel 的 Excel 文档吗?