9

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

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

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

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

4

3 回答 3

5

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

是一个 Python 示例,用于在 Calc 文档中进行一些操作。

于 2010-03-01T14:40:34.090 回答
1

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

可以从 Python 访问 Open Office.org API?

或这个? http://api.openoffice.org/

OpenOffice.org API 项目?

这可能也有帮助:http ://wiki.services.openoffice.org/wiki/Python

于 2010-03-01T14:37:45.197 回答
0

为了轻松创建电子表格:使用odslib或用于 python3:odslib3 ……即使该项目最近一次更新是在六年前(2013-07-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")
于 2020-04-01T12:47:23.023 回答