将纯文本HTML文件转换为二进制Excel 97-2003

时间:2012-02-21 15:42:04

标签: php excel

我有一个'Excel'文件(扩展名为.xls),结果是伪装成电子表格的纯文本HTML文件(如果我运行'file [filename]'我得到'HTML文档文本'作为类型)。该文件来自第三方供应商,我无法控制格式。

我想将文件转换为Excel 97-2003格式,以便我可以在PHP库(PHPExcel)中读取它。我可以通过在Excel中打开文件,忽略警告消息然后明确地将其保存为Excel 97-2003来完成此操作,但我想从初始文件进入自动化整个过程以提取单元格数据并将其转储到数据库中。

理想情况下,我想使用PHP库进行转换,因为它可以更好地与代码库的其余部分集成,但是用Perl,Java或(在紧要关头)C#编写的库也可以工作,前提是它们不会不依赖于运行Windows和Office的服务器。

是否有可以提供此功能的工具或库?

2 个答案:

答案 0 :(得分:2)

PhpExcel http://phpexcel.codeplex.com/是不错的,但是你会遇到大问题吞噬内存的问题。对于大型表格或速度,我建议使用perl writeExcel http://search.cpan.org/~jmcnamara/Spreadsheet-WriteExcel-2.37/lib/Spreadsheet/WriteExcel.pm

perl writeExcel库比PhpExcel更快,占用的内存更少。然后我用

<?php
    echo passthru('perl filename.pl');
?>

通过PHP运行perl脚本。

答案 1 :(得分:0)

目前看来,唯一的答案是通过在Excel中打开文件并重新保存来手动处理文件,这样做确实有效,但不允许完全自动化。

一旦发布,我会看一下新版本的PHP支持HTML支持,因为这听起来很有希望。