2014-02-12 126 views
-4

XLS文件這是我的Perl腳本閱讀使用Perl

#!/usr/bin/perl -w 
use strict; 
use warnings; 

    use Spreadsheet::WriteExcel; 
    use Spreadsheet::ParseExcel; 
    my $workbook = Spreadsheet::ParseExcel->new("/home/Admin/Desktop/RP_processed_Address_withsubscriptionID (1).xls"); 
    my $workbook1 = Spreadsheet::WriteExcel->new("/home/Admin/Desktop/new.xls"); 
    open(my$old, '<', "$workbook") or die "oops!"; 
    open(my$new, '>', "$workbook1") or die "ooops!"; 
    while (my$line = <$workbook>) { 
     print $workbook1 $line 

    } 

當我運行此腳本,我收到以下錯誤

Odd number of elements in hash assignment at /usr/local/share/perl5/Spreadsheet/ParseExcel.pm line 167. 
oops! at sample.pl line 9. 

其中的腳本是怎麼回事,我沒有得到任何想法錯了。請幫助我如何解決這個錯誤 你的建議將是可觀的。

回答

3

您不再閱讀任何文檔。你複製和粘貼代碼,不理解你所做的基礎知識。你爲什麼用open當你用這兩個模塊打開文件時打開文件?爲什麼你要手動寫一行?這不是Excel數據如何工作,這不是模塊的工作方式。別再猜測了。瞭解你在做什麼。這將無法工作。

+0

之前我從來沒有在xls文件上工作。我做了像.csv文件,這就是爲什麼我張貼對不起:( – Ram

1

看一看CPAN爲Spreadsheet::ParseExcel

你需要自己創建的工作簿對象中訪問工作表,並確定你想從分析數據。從這裏您可以使用列/寬度座標系訪問單元格。您不需要使用「打開」,因爲ParseExcel和WriteExcel已經這樣做了。

my $sheet = $workbook1->worksheet('Sheet1'); 
my $cell = $sheet->get_cell(0, 0); 
my $cell_value = $cell->value(); 

這是否更清楚您需要做什麼?