Spreadsheet::ParseExcel可以正常工作,但是我需要一种方法来读取没有它的文件,可以说“随带Perl”,因为我无法安装任何PM或CPAN模块。有没有人有建议让我开始?如何用Perl读取excel文件?
回答
什么是使用CPAN模块相对轻松的工作实际上是没有他们非常困难。
对于打开Excel二进制数据(BIFF)存储在另一个二进制文件格式称为OLE复合文件,这就像一个文件内的文件系统,BIFF数据可能不会被顺序存储,所以开始时你必须编写一个解析器来获取数据。
一旦提取了原始BIFF数据,您必须解析它才能找到单元数据。这样稍微简单一点,但仍然存在诸如将字符串存储在离开单元数据的散列表中的困难。和日期无法区分纯数字。和合并单元格中的数据。而且一切仍然是二进制的,位掩码控制着数据结构的含义。
幸运的是,所有这些令人头疼的事情已经被其他人所困扰,并且被包裹在module之中,所以没有其他人必须忍受它们。
因此,即使您的管理员不会为您安装模块,也有很多方法可以在本地使用install modules或甚至install perl,这样您就不必打扰他们。最后,这可能会是一个更简单的解决方案。
*我部分地。
麦克纳马拉先生,我是你的工作的粉丝,我会听取你的意见和追求模块的安装。 – isJustMe 2012-03-15 18:36:12
OpenDocument is an ISO standard所以你可能阅读规范并编写你自己的解析器。
CPAN模块的存在是因为有很多事情(一些简单的,一些复杂的),人们想做的事情不适合成为核心语言的一部分。解析Excel电子表格就是其中之一(更复杂的一个)。
您应该修复阻碍您安装模块的障碍。它可能是管理性的(在这种情况下,您需要游说以更改策略),它可能是技术性的(在这种情况下,您可能需要了解local::lib
。
感谢您的建议,而不是我正在寻找的答案。 – isJustMe 2012-03-15 18:25:38
对不起,我以为我看到在之前的评论中导出为CSV是一个选项。我现在看到我错了。 – 2012-03-19 05:46:37
我将基于@mob关于Text :: CSV的上述回答。前一段时间,我在CPAN上发现Text:CSV::Slurp,并且是即时转换。它采用带有标题行的CSV文件并返回hashref的arrayref,其中的键是标题行中的名称。很明显,这在所有情况下都不起作用,但如果它确实代码很简单:
my $slurp = Text::CSV::Slurp->new;
my $data = $slurp->load(file => $filename);
for my $record (@$data) {
...
}
谢谢,问题是我必须解析一个XLS文件而不是CSV – isJustMe 2012-03-17 19:39:34
- 1. 如何在Perl中读取Excel文件?
- 2. 如何修改Perl脚本读取Excel而不是HTML文件
- 3. 如何使用AJAX读取excel文件?
- 4. Perl - 读取文件
- 5. Perl文件读取
- 6. 如何从Perl文件读取数字?
- 7. 如何在perl中读取grep文件
- 8. 如何在Perl中读取.conf文件
- 9. 用read_excel读取excel文件
- 10. 用xlrd读取excel文件
- 11. 读取Excel文件
- 12. 读取Excel文件
- 13. 读取excel文件
- 14. 如何从Excel文件读取?
- 15. 如何从Excel文件读取数据?
- 16. 如何从动态excel文件读取?
- 17. 如何从excel文件中读取
- 18. 如何用perl创建excel文件?
- 19. Perl读取文件错误
- 20. 读取JPEG文件perl
- 21. Perl - 读取文件行
- 22. perl递归文件读取
- 23. Perl读取perl代码表示文件
- 24. 使用Spreadsheet遍历Perl文件中的Excel文件::阅读
- 25. 用Perl读取zip文件内容
- 26. 使用Perl读取XML文件
- 27. c#读取excel文件
- 28. 的Java读取Excel文件
- 29. 远程读取Excel文件
- 30. JAVA读取excel文件
[Are](http://shadow.cat/blog/matt-s-trout/but-i-cant -use-cpan /)[you](http://www.perlmonks.org/?node=693828)[sure](http://twiki.org/cgi-bin/view/TWiki/HowToInstallCpanModules#Setting_a_private_CPAN_librar)[你](http://twiki.org/cgi-bin/view/TWiki/HowToInstallCpanModules#Installing_CPAN_modules_manually)[can not](http://linuxgazette.net/139/okopnik.html)[use](http:/ /www.thegeekstuff.com/2008/09/how-to-install-perl-modules-manually-and-using-cpan-command/)[CPAN](http://www.activestate.com/blog/2010/ 10 /如何安装,CPAN模块-的activeperl)? – mob 2012-03-15 17:16:12
完全确定...不是超级用户,请求被拒绝 – isJustMe 2012-03-15 17:17:44
您可以使用模块而不需要以根用户身份进行安装。 – 2012-03-15 17:22:16