2014-02-12 87 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(); 

这是否更清楚您需要做什么?