【发布时间】:2017-03-28 16:51:14
【问题描述】:
我正在尝试编写一个 perl 脚本,该脚本使用工作表名称读取一个 excel 文件(其中包含许多工作表)。
我知道如何使用工作表编号访问 Excel 文件的特定工作表,但不确定如何使用工作表名称读取它。 非常感谢您提供的任何帮助。
以下是我编写的使用工作表编号访问工作表的代码:
my $Sheet_Number = 26;
my $workbook = ReadData("<path to the excel file>");
for (my $i =2; $i<$limit; $i++){
my $cell = "A" . $i;
my $key_1 = $workbook->[$Sheet_Number]{$cell};
}
谢谢
----编辑----
我想使用工作表名称打开 Excel 文件中的特定工作表。然后从该特定表中读取数据。用户在从命令行参数运行脚本时将输入工作表的名称。
以下是我在获得之前问题的建议答案后使用的代码:
my $parser = Spreadsheet::ParseExcel->new();
my $workbook = $parser->parse("$path");
my $worksheet;
if ($worksheet->get_name() eq "$Sheet_Name"){
for (my $i =2; $i<$limit; $i++){
my $cell = $worksheet->get_cell($i,"A");
my $value = $cell->value();
push @array_keys, $value;
}
}
我想读取特定工作表的 A 列的值并将其推送到数组中。
$Sheet_Name : It is the name of the sheet which is entered by the user as cmd line arg.
$path : It is the complete path to the Excel file
错误消息:无法在 perl_script.pl 的未定义值上调用方法“get_name”(错误指向使用 if-condition 的行。)
感谢您的帮助。
-----编辑----
任何人,如果对这篇文章有任何线索,请发表您的答案或建议。感谢任何回复。
谢谢
【问题讨论】:
-
use Spreadsheet::ParseExcel;CPAN module。我的第一份工作是将 Perl 脚本转换为 Powershell。如果您想探索 PS,这里有一个 [很棒的模块(blogs.technet.microsoft.com/heyscriptingguy/2015/11/25/…) 可用 -
感谢您的回复。我正在使用 CPAN 模块:使用 Spreadsheet::ParseExcel;将查看提到的博客。但是有没有办法让 perl 脚本(使用 CPAN 模块)使用工作表名称打开工作表。
-
Spreadsheet::ParseExcel 仅适用于 xls 文件,对 xlsx 文件使用 Spreadsheet::ParseXLSX。