我喜欢用好的原生Python库来编写XLS,但它似乎并不存在。令人高兴的是,Jython确实如此。
所以我试图在jexcelapi和Apache HSSF之间做出决定: http://www.andykhan.com/jexcelapi/tutorial.html#writing http://poi.apache.org/hssf/quick-guide.html
(我不能使用COM自动化,因为我不在Windows上,即使我是,我也买不起Office许可证。)
我最初的想法是POI / HSSF非常彻底,但也非常Java--一切似乎都比它需要的更难。良好的文档,但我的头脑痛苦,试图弥合它描述的内容和我需要完成的事情之间的差距。
jexcepapi似乎有一个更简单,更好(对我而言)的界面,但没有非常好的文档或社区。 p>
你会使用哪种,为什么?
答案 0 :(得分:17)
xlwt出了什么问题?
答案 1 :(得分:3)
+1表示xlwt。有关how to use xlwt和how to deal with large spreadsheets的帖子,请参阅Matt Harrison的博客。另外,请查看Google上的python-excel群组“如果您使用Python来阅读,编写或以其他方式操纵Excel文件”。
答案 2 :(得分:1)
我会使用JExcelApi,但仅仅因为我以前使用过它。从未接触过HSSF。我记得最大的show-stopper是JExcelApi不支持一个单元格中的多种格式(例如粗体的一半文本,另一半用斜体或类似的东西)。我认为一般来说JExcelApi比HSSF更有限,但是这些限制从未妨碍我。
是的,文档对于接口是稀疏的(并且对于底层机制是不存在的),但我认为它是可行的......
答案 3 :(得分:1)
如果你打算使用更简单的文字来表达,那么我个人会劝告JExcel。反之亦然。
从基础(基本上未记录的)低级代码/(记录的)Excel规范中抽象出更高级的功能。
我们遇到的另一个问题是,当遇到无效的公式时,jexcel会致命地失败。 如果您需要解析客户提供的电子表格,这是一个问题。
同时新的POI版本支持(几乎)xls和xlsx都是无效的。
答案 4 :(得分:0)
Excel将VBA使用的相同OLE自动化API公开给支持COM的任何东西。您可以使用win32com(默认情况下包含在ActiveState Python中)来操作电子表格,就像在VBA中一样。