如何用Python创建docx文件
我想把我的数据放到微软Word或者LibreOffice Writer的表格里。
我需要能够改变表格中单元格的背景颜色,还需要能把页面设置成“横向”模式。
我一直在找一个简单的库(因为我刚开始学习编程),但没有找到适合我需求的。
你有没有听说过什么可以帮我的?如果有使用示例,那就更容易让我学习了。
2 个回答
3
之前的回答很好,但还有另一种方法:先在Word里创建文档,然后用Python修改xml文件,把你想要的内容插进去。我已经这样做过好几次了。实际上,我现在的发票程序就是这么工作的。
缺点:条件格式和编号列表需要一些真正的xml知识。
优点:没有限制,也不需要管理复杂的样式定义。所有功能都支持,因为一切都是在Word里完成的。
下面是具体的操作步骤:
- 创建一个*.docx文档,在你想要的标题、表格单元格等地方放置标记文本。
- 使用lxml找到这些标记,并复制它们的父元素(连同它们的格式)。
- 利用找到的元素创建模板。
- 把你的数据插入这些模板,然后像拼图一样把整个东西组装起来。
- 把你的xml打包成一个新的*.docx文件。
我有一个简单的示例项目展示这个过程。Docx2Python可以为你完成大部分工作。
4
你可以看看 这个项目
使用起来其实挺简单的,我没有测试过这个,但应该是可以的:
from docx import Document
document = Document()
r = 2 # Number of rows you want
c = 2 # Number of collumns you want
table = document.add_table(rows=r, cols=c)
table.style = 'LightShading-Accent1' # set your style, look at the help documentation for more help
for y in range(r):
for x in range(c):
cell.text = 'text goes here'
document.save('demo.docx') # Save document
我觉得你不能通过这个库来设置页面的方向属性,不过你可以自己先创建一个横向的空白Word文档,保存在你的工作目录里,然后每次生成文档的时候都复制这个文件。