2010-01-25 84 views
6

我正在寻找一些关于如何编写Perl脚本从Excel文件中读取数据然后使用读取的数据(希望作为字符串)并将其传递给另一个Perl文件(作为参数)的示例/建议。如何在Perl中读取Excel文件?

目标是建立一个表格,用户可以在表格中输入一些数据(ftp目的地或文件名)。然后,我的程序将抓住这些数据,以便进行一些自动化操作。它在实现中不必非常优雅...只需要它或多或少地读取数据行。

回答

6

查核在这些模块的简介:

+3

或者他可能只是让Excel电子表格作为.csv(或类似的),并为自己节省了很多麻烦:D – dangerstat 2010-01-25 18:53:54

+0

这是一个非常有效的点,CSV很容易创建和操作,并且如果您使用它们是允许的,这当然是肯定的要走的路。使用Text :: CSV_XS,并设置always_quote => 1,并且它对excel非常有用。 – 2010-01-25 18:54:51

8

您可以使用Spreadsheet::Read将委托给相应的模块中的多种格式,如Excel,OpenOffice和CSV阅读电子表格。

在另一方面,鉴于你的问题的描述,我想你会使用标准的配置文件格式好得多:

#!/usr/bin/perl 

use Config::Std; 

read_config 'ftp.ini' => my %config; 

for my $file (keys %config) { 
    print "File: '$file'\n"; 
    print "$_: ", $config{$file}->{$_}, "\n" 
     for qw(site protocol remote_name); 
} 

ftp.ini

 
[c:\Documents and Settings\user\My Documents\this.txt] 
site = ftp.example.com 
protocol = ftp 
remote_name = that.txt 
+1

让Joe Random User在Excel单元格中输入某些内容比让他们用大多数结构中永远不会看到的结构编辑文本文件要容易和安全得多。另外,您可以使用宏/等进行各种验证和输入检查。在Excel文件中,您不能使用.ini文件。 – rjp 2010-03-24 10:05:07