2010-01-25 110 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