这是我的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.
我不知道脚本出了什么问题。请帮我解决这个错误 你的建议会很明显。
答案 0 :(得分:3)
您没有再次阅读任何文档。您复制并粘贴代码,但不了解您所做的基本知识。当您使用这两个模块打开文件时,为什么要使用open
打开文件?为什么要手动写一行?这不是excel数据的工作原理,这不是模块的工作方式。别猜了。了解你在做什么。这将永远不会奏效。
答案 1 :(得分:1)
您需要访问已创建的工作簿对象中的工作表,并确定要从中解析数据。从这里,您可以使用列/宽度坐标系访问单元格。您不需要使用'open',因为ParseExcel和WriteExcel已经这样做了。
my $sheet = $workbook1->worksheet('Sheet1');
my $cell = $sheet->get_cell( 0, 0 );
my $cell_value = $cell->value();
你需要做什么更明确一点?