2012-11-21 28 views
1

我有一個Excel文件有許多列,但我只需要對這些列中的3列進行一些計算。excel文件中的列標題與Perl

我使用SpreadSheet::ParseExcel來遍歷我的Excel文件。如何指定我想用perl的列?

回答

4
#!/usr/bin/perl -w 

use strict; 
use Spreadsheet::ParseExcel; 

my $parser = Spreadsheet::ParseExcel->new(); 
my $workbook = $parser->parse('Book1.xls'); 

if (!defined $workbook) { 
    die $parser->error(), ".\n"; 
} 

for my $worksheet ($workbook->worksheets()) { 

    my ($row_min, $row_max) = $worksheet->row_range(); 
    my @columns = (1,5,6) # enter your 3 columns here 

    for my $row ($row_min .. $row_max) { 
     for my $col (@columns) { 

      my $cell = $worksheet->get_cell($row, $col); 
      next unless $cell; 

      # do the calculations here 
      print "Row, Col = ($row, $col)\n"; 
      print "Value  = ", $cell->value(),  "\n"; 
      print "Unformatted = ", $cell->unformatted(), "\n"; 
      print "\n"; 
      # operations done 
     } 
    } 
} 

來源:Spreadsheet::ParseExcel模塊的文檔。

+0

但是沒有辦法得到他們的名字而不是他們的號碼? – salamey

+0

爲那得到該單元格的值。 –

+3

讀取標題行,對列號進行名稱散列,然後在數據行中,get_cell($ row,$ col_for_header {'SomeHeader'}) – ysth