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

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

我想将文件转换为Excel 97-2003格式,以便我可以在PHP库(PHPExcel)中读取它。 我可以通过在Excel中打开文件,忽略警告消息,然后将其明确保存为Excel 97-2003,但是我想要从最初的文件进入到提取单元格数据并将其转储到数据库。

理想情况下,我希望使用PHP库进行转换,因为这样可以更好地与代码库的其他部分集成,但是使用Perl,Java或C#编写的库也可以工作,只要他们不依赖在运行Windows和Office的服务器上。

有没有可以提供这种function的工具或库?

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

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

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

通过PHP运行perl脚本。

现在看来,唯一的答案就是通过在Excel中打开并重新保存文件来手动处理文件,该文件可以工作,但不允许完全自动化。

一旦它被发布,我将会看看带有HTML支持的新版PHPExcel,因为这听起来很有希望。