Я пытаюсь прочитать значение ячейки из Excel, используя Spreadsheet::ParseExcel
класс в Linux
Понял, что класс Spreadsheet::ParseExcel
инкапсулирует метод worksheet()
.
Я получил приведенное ниже исключение перед тем, как включить обходной путь, чтобы найти действительную ошибку, которая была предложена для этого вопроса .
Can't call method "worksheet" on an undefined value at generateChecklist_test2.pl line 14.
Получено следующее исключение после включения предложенного обходного пути.
Got error File not found parsing spreadsheet. at generateChecklist_test2.pl line 14.
Пробовал запускать скрипт с и без пути к файлу. Тем не менее, не повезло.
Может кто-нибудь посоветовать, чем вызвано это исключение, пожалуйста.
Я получаю это исключение при попытке чтения данных Excel в форматах XLSX
и XLS
.
#!/usr/bin/perl
use strict;
use warnings;
use Excel::Writer::XLSX;
use Spreadsheet::ParseExcel;
use POSIX qw(strftime);
my $current_date_yyyy_mm_dd = strftime "%F", localtime;
my $parser = Spreadsheet::ParseExcel->new();
my $read_m_r_workbook = $parser->parse( '/home/btbillingauto/abs/m_and_r_checklist_'.$current_date_yyyy_mm_dd.'.xlsx' );
unless ($read_m_r_workbook) {
die "Got error " . $parser->error()." parsing spreadsheet.";
}
#my $read_mediation_rating_workbook = $parser->parse( 'm_and_r_checklist_'.$current_date_yyyy_mm_dd.'.xls' );
my $read_worksheet_kpi = $read_m_r_workbook->worksheet('kpi');
my $data_from_kpi_tab=0;
#read data from KPI Tab - Cell E13
$data_from_kpi_tab = $read_worksheet_kpi->get_cell(12, 4);
print "data_from_kpi_tab: ".$data_from_kpi_tab."\n";