我应该使用哪个库来从Linux/Python编写XLS文件?

7
我希望有一个好用的原生Python库来写XLS,但似乎并不存在这样的库。幸运的是,Jython可以胜任。
因此,我正在尝试在jexcelapi和Apache HSSF之间做出决定: http://www.andykhan.com/jexcelapi/tutorial.html#writing http://poi.apache.org/hssf/quick-guide.html (我不能使用COM自动化,因为我不在Windows上,并且即使我在Windows上,我也买不起Office许可证。)
我的初步想法是POI/HSSF非常全面,但也非常Java - 一切似乎比必要的更困难。文档很好,但我试图弥合它描述的内容和我需要完成的任务之间的差距时,会感到头痛。
jexcepapi似乎具有更简单、更好的(对我来说)接口,但文档或社区支持不是很好。
你会选择哪个,为什么?
5个回答

18

xlwt有什么问题?


我会问同样的问题,并建议Jeremy看一下;我在实际项目中使用过pyexcelerator(其中xlwt是一个改进的分支),并且对它非常满意。 - James Bennett
这是让我停下来的原因: http://sourceforge.net/mailarchive/forum.php?forum_name=pyexcelerator-devel我看到了各种关于错误的博客文章。我真的不想遇到需要我学习很多关于二进制格式的错误 - 这似乎是一个深奥的领域。不过,同意,xlwt似乎更胜一筹。 - Jeremy Dunck
1
@Jeremy Dunck:这不是“深度”的问题,而是一堆微软垃圾。它只是一件可怕的事情。你几乎可以通过构建XML工作簿文档来代替尝试构建二进制文件。 - S.Lott
我也使用过pyexcelerator,效果很好。有人知道xlwt是否允许在工作簿内对工作表进行排序吗? - Jeremy Cantrell
1
也许这是一个单独的问题:“如何在xlwt工作簿中对页面进行排序?” - S.Lott

3

1

如果您要在Excel和文本之间使用更复杂的内容,我个人不建议使用JExcel。

高级功能与底层(基本未记录)代码/(已记录)Excel规范的抽象程度差异很大。

我们遇到的另一个问题是,当遇到无效公式时,jexcel会严重失败。如果需要解析客户提供的电子表格,则会出现问题。

此外,新的POI版本支持几乎同时处理xls和xlsx。


1

我会使用JExcelApi,但只是因为我以前用过它。从未接触过HSSF。我能想起的最大问题是JExcelApi不支持在一个单元格中使用多种格式(例如,一半文本加粗,另一半斜体之类的)。我认为总的来说,JExcelApi比HSSF更受限制,但这些限制从未妨碍我的工作。

是的,界面的文档很少(底层机制则根本没有),但我认为这是可行的...


0

Excel公开了与VBA使用的相同OLE自动化API,以支持COM。您可以使用win32com(默认包含在ActiveState Python中)以类似于VBA的方式操作电子表格。


这里有详细的描述:http://oreilly.com/catalog/pythonwin32/chapter/ch12.html - dgorissen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接