我的观点是,使用 pod (来自appy框架,这对我来说很痛苦)或者 OpenOffice UNO 桥,似乎很快就会被弃用,这需要OOo.org在启动我的脚本时运行根本不满意。
有人能指出一个简洁而干净的ODT(桌子是我的优先考虑)的简洁方法,而不必再自己编码吗?
编辑:我正在尝试 ODFpy ,这似乎可以满足我的需求,稍后会详细介绍。
答案 0 :(得分:7)
您的里程数可能会有所不同。我不喜欢它 - 我最终使用在OpenOffice中创建的模板ODT,使用ziplib和elementtree操作contents.xml,并更新它。 (在您的情况下,它只会创建相关的表行和表格单元节点),然后记录所有内容。
它实际上很简单,但是为了使ElementTree能够正确地使用XML命名空间。 (这是非常糟糕的文件)但它可以做到。我没有这个例子,对不起。
答案 1 :(得分:5)
要编辑odt文件,我的回答可能无济于事,但如果要创建新的odt文件,可以在PyQt4中使用QTextDocument,QTextCursor和QTextDocumentWriter。一个简单的例子,展示如何写入odt文件:
>>>from pyqt4 import QtGui
# Create a document object
>>>doc = QtGui.QTextDocument()
# Create a cursor pointing to the beginning of the document
>>>cursor = QtGui.QTextCursor(doc)
# Insert some text
>>>cursor.insertText('Hello world')
# Create a writer to save the document
>>>writer = QtGui.QTextDocumentWriter()
>>>writer.supportedDocumentFormats()
[PyQt4.QtCore.QByteArray(b'HTML'), PyQt4.QtCore.QByteArray(b'ODF'), PyQt4.QtCore.QByteArray(b'plaintext')]
>>>odf_format = writer.supportedDocumentFormats()[1]
>>>writer.setFormat(odf_format)
>>>writer.setFileName('hello_world.odt')
>>>writer.write(doc) # Return True if successful
True
QTextCursor还可以插入表格,框架,块,图像。更多信息。更多信息: http://qt-project.org/doc/qt-4.8/qtextcursor.html
作为奖励,您还可以使用QPrinter打印到pdf文件。