2016-08-28 10 views
1

Я написал perl-скрипт для чтения определенного значения ячейки столбца в файле excel.perl script для чтения всех элементов в конкретном столбце файла 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

Большое спасибо за подробный ответ. Помогает. –

 Смежные вопросы

  • Нет связанных вопросов^_^