我正在开发一个需要格式化、可编辑输出的项目(在 Python 中)。由于最终用户不会精通技术,因此输出需要采用文字处理器可编辑格式。格式很复杂(要点、段落、粗体等)。
有没有办法使用 Python 生成这样的报告?我觉得应该有一种方法可以使用 Microsoft Word/OpenOffice 模板和 Python 来做到这一点,但我找不到任何足够先进的东西来获得良好的格式。有什么建议么?
我正在开发一个需要格式化、可编辑输出的项目(在 Python 中)。由于最终用户不会精通技术,因此输出需要采用文字处理器可编辑格式。格式很复杂(要点、段落、粗体等)。
有没有办法使用 Python 生成这样的报告?我觉得应该有一种方法可以使用 Microsoft Word/OpenOffice 模板和 Python 来做到这一点,但我找不到任何足够先进的东西来获得良好的格式。有什么建议么?
一个鲜为人知且略显邪恶的事实:如果您创建一个 HTML 文件,并在其上粘贴一个 .doc 扩展名,Word 会将其作为 Word 文档打开,而大多数用户都不会更聪明。
除非一个非常技术性的人会说,我这是一个小的 Word 文件!:)
为此使用Python Docx模块 - 100% Python、表格、图像、文档属性、标题、段落等。
我知道 docutils 有一个odtwriter。您可以将输出生成为reStructuredText并将其提供给 odtwriter 或查看 odtwriter 在后端使用什么来生成 ODT 并使用它。
(我可能会生成第一个输出,然后破解 odtwriter 以输出我想要的东西(并将修复贡献回项目),因为这可能比尝试将你的东西直接渲染到 ODT 要容易得多。)
我已经使用 xlwt 使用 python 创建 Excel 文档,但我还不需要编写 word 文件。我找到了这个包OOoPy,但我没有使用它。
此外,您可能想尝试输出 html 文件并让用户在 Word 中打开它们。
您可以在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 文件。
我认为 OpenOffice 有一些 Python 绑定——你应该能够用 Python 编写 OO 宏。
但我会改用 HTML——Word 和 OO.org 非常擅长编辑它,您可以轻松地从 Python 编写它(尽管 Word 节省了很多混乱,这可能会使您的 Python 应用程序解析它变得复杂)。