如何在Linux中从命令行生成xls文件?

时间:2012-05-29 00:20:59

标签: php mysql excel export-to-excel

我需要每天在我的网站上自动更新Excel中的某些价目表。我使用PHPExcel,但生成1个文件只需要40000行和11列需要大量内存(大约900 Mb),这在我的Linux托管服务器上是不可用的。所有Google搜索结果仅指向PHPExcel。我想知道是否有任何命令行实用程序允许执行相同的操作,但消耗更少的内存,所以我可以使用cron在我的Linux服务器上运行它?我需要在Excel文件中使用一些格式和公式,这使得CSV和HTML成为非选项。

当然,我可以从Windows Server机器连接到MySQL,在那里用实际的Excel生成Excel文件,然后将它们上传到服务器,但这个选项对我来说似乎很不好。

加了: 我现在正在决定PERL,Python和Java模块之间,选择在大文件上消耗较少资源并且更易于使用的模块;欢迎对此主题发表任何评论。 也接受任何其他解决方案。

5 个答案:

答案 0 :(得分:2)

您应该考虑使用java和Apache POI

它具有良好的性能,甚至比Windows上的MS Office互操作程序集更好(基于我自己的经验)。

它还有一个庞大的用户社区。

答案 1 :(得分:1)

根据页面的复杂程度,您可以尝试手动构建xlsx文件。 xlsx规范非常复杂,但我已经看到了创建非常简单的表的例子。

也许这link可能会有所帮助。

答案 2 :(得分:1)

我使用PERL和John McNamara的模块Spreadsheet :: WriteExcel获得了非常好的结果,以生成各种精美的电子表格。但它需要编程。

答案 3 :(得分:1)

您可以尝试在ResultSet的Java Templater中构建它。我们正在使用更多Java示例更新站点,但代码看起来就像这样。

ITemplaterDocument doc = Configuration.Factory.Open(file); doc.process(的resultSet); doc.flush();

答案 4 :(得分:0)

对我来说最简单的选择是使用python-excel库。虽然我从来没有在python上写过任何东西,但是我花了几个小时来实际使用它并且它的工作速度比PHPExcel快得多并且消耗的内存更少(我的最大文件大约300 Mb,相比之下900 Mb PHP)。但是,如果您正在寻找类似问题的解决方案,其他答案中提供的工具也可以满足您的需求。