使用Perl读取XLS文件

时间:2014-02-12 10:28:25

标签: perl xls

这是我的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.

我不知道脚本出了什么问题。请帮我解决这个错误 你的建议会很明显。

2 个答案:

答案 0 :(得分:3)

您没有再次阅读任何文档。您复制并粘贴代码,但不了解您所做的基本知识。当您使用这两个模块打开文件时,为什么要使用open打开文件?为什么要手动写一行?这不是excel数据的工作原理,这不是模块的工作方式。别猜了。了解你在做什么。这将永远不会奏效。

答案 1 :(得分:1)

查看Spreadsheet::ParseExcel

的CPAN

您需要访问已创建的工作簿对象中的工作表,并确定要从中解析数据。从这里,您可以使用列/宽度坐标系访问单元格。您不需要使用'open',因为ParseExcel和WriteExcel已经这样做了。

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

你需要做什么更明确一点?