2016-08-28 4 views
1

Excel 파일의 특정 셀 값을 읽는 perl 스크립트를 작성했습니다.perl 스크립트가 Excel 파일의 특정 열에있는 모든 요소를 ​​읽습니다.

use strict; 
use warnings; 
use feature 'say'; 
use Spreadsheet::Read; 
use Spreadsheet::ParseExcel; 

my $workbook = ReadData ("C::/Users/Tej/Work.xlsx"); 
print $workbook->[6]{D4} . "\n"; 

여기까지 좋습니다. 해당 열에 값이있을 때까지 열 D 아래의 모든 셀 값을 읽는 논리를 작성하고 싶습니다. 누구든지 그걸 도와 줄 수 있어요.

감사

답변

2

가정 내 데이터는 다음과 같습니다

enter image description here

한 가지 방법은 당신이 원하는 일을하는 것입니다 ('D'이후로는 4 번째 열에 해당) :

$ cat a.pl 
use strict; 
use warnings; 
use feature 'say'; 
use Spreadsheet::Read; 
use Spreadsheet::ParseExcel; 
use Data::Dumper; 

my $workbook = ReadData ("/tmp/file.xls", parser => "xls"); 
print Dumper($workbook->[1]{cell}[4]); 
foreach my $cell (@{$workbook->[1]{cell}[4]}) { 
    if ($cell) { 
     print $cell . "\n"; 
    } 
} 


$ perl a.pl 
$VAR1 = [ 
      undef, 
      'grid', 
      1115, 
      1512, 
      212 
     ]; 
grid 
1115 
1512 
212 

또 다른를 방법은 사용하는 것입니다 Spreadsheet::BasicReadNamedCol :

$ cat a.pl 
use strict; 
use warnings; 
use feature 'say'; 
use Spreadsheet::BasicReadNamedCol; 
use Data::Dumper; 
my @columnHeadings = (
    'grid', 
); 
my $workbook = new Spreadsheet::BasicReadNamedCol("/tmp/file.xls"); 
$workbook->setColumns(@columnHeadings); 
while (my $data = $workbook->getNextRow()) { 
    print "@{$data}[0]\n"; 
} 
$ perl a.pl 
grid 
1115 
1512 
212 
+0

자세한 답변을 주셔서 감사합니다. 도움이됩니다. –