【问题标题】:How can I read Excel files in Perl?如何在 Perl 中读取 Excel 文件?
【发布时间】:2011-01-09 05:36:54
【问题描述】:

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

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

【问题讨论】:

    标签: perl excel


    【解决方案1】:

    Spreadsheet::ParseExcel 模块可以读取 Excel 文件。该文档包含如何使用它的示例。

    【讨论】:

      【解决方案2】:

      您可以使用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] 站点 = ftp.example.com 协议 = ftp remote_name = that.txt

      【讨论】:

      • 让 Joe Random 用户在 Excel 单元格中键入内容可能比让他们编辑具有大多数人从未见过的结构的文本文件要容易和安全得多。另外,您可以使用宏/等进行各种验证和输入检查。在 Excel 文件中,您不能使用 .ini 文件。
      【解决方案3】:

      查看这些模块中的概要:

      【讨论】:

      • 或者他可以将 Excel 电子表格保存为 .csv(或类似格式)并为自己省去很多麻烦:D
      • 这是一个非常有效的观点,CSV 更容易创建和操作很多,并且如果您允许使用它们,那么它肯定是要走的路。使用 Text::CSV_XS,并设置 always_quote=>1,它可以很好地与 excel 配合使用。
      猜你喜欢
      • 1970-01-01
      • 2013-09-19
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多