Python,OpenOffice:以编程方式处理电子表格

时间:2010-03-01 14:35:48

标签: python excel openoffice-calc

我有一个基于电子表格的自动报告,需要每天创建,包括一些图表,聚合函数(例如SUM和AVERAGE)和格式化单元格(日期,百分比等)。

我尝试write these results directly to an Excel file,但Python的xlwtxlrd不支持图表和功能。

此外,尝试打开现有的格式化Excel文件并更改某些单元格的值最终会删除现有文件中的所有图表和函数。

有没有办法将图表和函数写入OpenOffice电子表格,或者至少更改现有电子表格中的单元格而不删除数据?如果有Pythonic方法,我可以轻松地将OO文件转换为Excel文件并交付。

3 个答案:

答案 0 :(得分:5)

您可以使用PyUNO,一个Python库来使用UNO API。

Here是一个Python示例,可以在Calc文档中进行一些操作。

答案 1 :(得分:1)

您是否在寻找:http://ooopy.sourceforge.net/

打开Office.org API可以从Python访问吗?

还是这个? http://api.openoffice.org/

OpenOffice.org API项目?

这可能会有所帮助,http://wiki.services.openoffice.org/wiki/Python

答案 2 :(得分:0)

要轻松创建电子表格,请使用odslib或使用python3:odslib3…即使项目最近一次更新是在六年前(2013-07-19),它也可以直接使用,仅查看了一个示例。从the repository下载示例软件包。

$ pip install odslib

,然后可以这样创建一个示例电子表格:

#!/usr/bin/python

import sys
import odslib

doc = odslib.ODS()

def writeRow( doc, row, name, power, rating ):
    doc.content.getCell( 0, row).stringValue( name )
    doc.content.getCell( 1, row).stringValue( power )
    doc.content.getCell( 2, row).floatValue( rating )

# the column names
writeRow( doc, 0, "Name", "Power", "Rating" ) 

# some lines of content
writeRow( doc, 1, "Mr. Incredible", "Strength", 0.8 ) 
writeRow( doc, 2, "Elastigirl", "Elasticity", 0.9 ) 
writeRow( doc, 3, "Frozone", "Ice", 0.7 ) 
writeRow( doc, 4, "Syndrome", "n/a", 0.3 ) 
writeRow( doc, 5, "Jack-Jack", "All", 1.0 ) 

doc.save("supers.ods")