2012-05-07 2 views
0

하나의 펄 프로그램에서 2 엑셀 시트를 읽으려고합니다. 이 같은2 또는 여러 개의 Excel 워크 시트 동일한 펄 프로그램에서

->

#!/usr/bin/perl -w 

use strict; 
use IO::File; 
use IO::Seekable; 
use Spreadsheet::ParseExcel; 

my $parser = Spreadsheet::ParseExcel->new(); 
my $workbook = $parser->Parse('FILE1.xls'); 
my $worksheet1 = $workbook->worksheet('Worksheet_name1'); 

my $workbookB = $parser->Parse('FILE2.xls'); 
my $worksheetB = $workbookB->worksheet('Worksheet_name2'); 

그러나, 나는이 오류에 직면하고있다 - 가 ./PERL_PROGRAM.pl

에서 정의되지 않은 값에 방법 "워크 시트"를 호출 할 수 없습니다 것은

는 사람이 줄 수 나 몇 가지 포인터 .. 당신의 도움을 주셔서 감사합니다

답변

2

parseundef은 실패하고 그것을 확인하지 않으면 반환합니다. (따라서 당신은 Can't call method "worksheet" on an undefined value이됩니다.) 또한, 이 아닌 parse입니다 (Perl은 대소 문자를 구별합니다). 사용해보기 :

#!/usr/bin/perl 

use strict; 
use warnings; 
use Spreadsheet::ParseExcel; 

my $parser = Spreadsheet::ParseExcel->new(); 
my $workbook = $parser->parse('FILE1.xls') or die $parser->error; 
my $worksheet1 = $workbook->worksheet('Worksheet_name1') 
       or die "Worksheet_name1 doesn't exist"; 

my $workbookB = $parser->parse('FILE2.xls') or die $parser->error; 
my $worksheetB = $workbookB->worksheet('Worksheet_name2') 
       or die "Worksheet_name2 doesn't exist"; 
관련 문제