继续学习在珀尔散步(爬行? )
我有 Perl 代码, 我基本上尝试通过阵列字符串循环, 并在我的工作手册中找到这些工作表( 目前, 我100%肯定有一张工作手册中提供姓名的表格)。 $Worksholp 变量似乎被分配到基于 $Worksholp 的精细工作表上。
print $worksheet->(Name);
测试线。但是,下一行
my $cell = $worksheet->get_cell(1,1);
似乎没有设置单元格, 因为下面的行不打印单元格值( 我知道这是为本案设定的) 。 我知道这一点, 因为如果我在
my $value = $cell->value() if ($cell);
我知道错误:
Can t call method "value" on an undefined value at script.pl line 14
完整代码在此 :
use strict;
use warnings;
use Spreadsheet::XLSX;
my $excel = Spreadsheet::XLSX -> new ( C:Scott.xlsm ,);
my @sheets = qw(Fund_Data GL_Data);
foreach my $sheet (@sheets) {
my $worksheet = $excel->Worksheet($sheet);
print $worksheet->{Name}, "
"; #just a test to make it is being set to worksheet
my $cell = $worksheet->get_cell(1,1);
my $value = $cell->value() if ($cell);
print $value, "
" if ($value);
}
我的结果很简单:
Fund_Data
GL_Data
何时应该
Fund_Data
you --> (Range("A1").Value in Sheet("Fund_Data"))
GL_Data
me --> (Range("A1").Value in Sheet("GL_Data"))
此外,我建立上述代码的依据不在下面的代码中,而下面的代码是经过试验和测试的。上面代码的主要区别是,我试图根据数组值来分配我想要的表格,而不是绕过每张工作表,而是试图根据数组值来分配工作表。
use strict;
use warnings;
use Spreadsheet::XLSX;
my $excel = Spreadsheet::XLSX -> new ( P:VBAHelpBook3.xlsx ,);
foreach my $sheet (@{$excel -> {Worksheet}}) {
printf("Sheet: %s
", $sheet->{Name});
my $cell = $sheet->get_cell(2,1);
my $value = $cell->value();
printf("Cell value is: $value");
}