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