6

我正在开发一个需要格式化、可编辑输出的项目(在 Python 中)。由于最终用户不会精通技术,因此输出需要采用文字处理器可编辑格式。格式很复杂(要点、段落、粗体等)。

有没有办法使用 Python 生成这样的报告?我觉得应该有一种方法可以使用 Microsoft Word/OpenOffice 模板和 Python 来做到这一点,但我找不到任何足够先进的东西来获得良好的格式。有什么建议么?

4

7 回答 7

3

一个鲜为人知且略显邪恶的事实:如果您创建一个 HTML 文件,并在其上粘贴一个 .doc 扩展名,Word 会将其作为 Word 文档打开,而大多数用户都不会更聪明。

除非一个非常技术性的人会说,我这是一个小的 Word 文件!:)

于 2009-05-28T17:18:42.937 回答
2

为此使用Python Docx模块 - 100% Python、表格、图像、文档属性、标题、段落等。

于 2011-01-27T16:53:28.110 回答
2

" 格式复杂(要点、段落、粗体等),"

使用RST

生成起来很简单,因为它是纯文本。

编辑起来很简单,因为它是带有一些额外字符的纯文本来提供结构信息。

它使用一堆工具很好地格式化。

于 2009-05-28T15:59:54.313 回答
1

我知道 docutils 有一个odtwriter。您可以将输出生成为reStructuredText并将其提供给 odtwriter 或查看 odtwriter 在后端使用什么来生成 ODT 并使用它。

(我可能会生成第一个输出,然后破解 odtwriter 以输出我想要的东西(并将修复贡献回项目),因为这可能比尝试将你的东西直接渲染到 ODT 要容易得多。)

于 2009-05-28T13:58:03.123 回答
1

我已经使用 xlwt 使用 python 创建 Excel 文档,但我还不需要编写 word 文件。我找到了这个包OOoPy,但我没有使用它。

此外,您可能想尝试输出 html 文件并让用户在 Word 中打开它们。

于 2009-05-28T13:59:56.987 回答
1

您可以在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 文件。

于 2012-10-04T14:56:49.917 回答
0

我认为 OpenOffice 有一些 Python 绑定——你应该能够用 Python 编写 OO 宏。

但我会改用 HTML——Word 和 OO.org 非常擅长编辑它,您可以轻松地从 Python 编写它(尽管 Word 节省了很多混乱,这可能会使您的 Python 应用程序解析它变得复杂)。

于 2009-05-28T14:12:26.027 回答