Python与OpenOffice:编程操作电子表格

9 投票
3 回答
14964 浏览
提问于 2025-04-15 19:52

我有一个基于电子表格的自动报告,每天都需要生成,里面有一些图表、汇总函数(比如求和和平均值)以及格式化的单元格(日期、百分比等)。

我尝试过直接把这些结果写入Excel文件,但是Python的xlwtxlrd不支持图表和函数。

而且,我试着打开一个已经格式化的Excel文件,修改一些单元格的值,结果把文件里的所有图表和函数都删掉了。

有没有办法把图表和函数写入OpenOffice电子表格,或者至少在不删除数据的情况下修改现有电子表格中的单元格?如果有一种Python的方法可以做到这一点,我可以很容易地把OO文件转换成Excel文件并交付。

3 个回答

0

如果你想轻松创建电子表格,可以使用 odslib,或者如果你用的是python3,可以试试 odslib3。虽然这个项目最后一次更新是在六年前(2013年7月19日),但它依然可以直接使用,而且只需要看一个例子就能上手。你可以从 这个仓库 下载包,里面有示例。

$ 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")
1

你是在找这个吗:http://ooopy.sourceforge.net/

想知道如何用Python访问Open Office.org的API吗?

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

这是关于OpenOffice.org API项目的内容吗?

这个链接也许对你有帮助:http://wiki.services.openoffice.org/wiki/Python

5

你可以使用 PyUNO,这是一个可以让你用Python来操作UNO API的库。

这里有一个Python的例子,可以用来对Calc文档进行一些操作。

撰写回答