Python操作Word文档,建表
我们介绍几种使用python创建word文档的方法,分别使用jinja2、docx、win32com
一、使用jinja2模板创建word文档(推荐)
使用这种方法,我们需要一个xml模板,之后将需要插入的数据通过变量传递,就能出色的达到目的,完全不需要考虑word中复杂的格式设置。
1.新建一个word文档,按需要创建表格,段落等,设置好想要的格式,之后以xml形式保存为“template.xml”。
例:
2.利用编辑器工具打开template.xml(如pycharm,然后利用快捷键格式化该文件Ctrl+Alt+L)
找到我们在文档中写入的内容,如标题“Hello”(<w:document>——<w:body>下的<w:p>)
红框中的<w:p>就是标题的整个设置,<w:t>中则是标题的具体内容,现在我们把Hello替换为{{ document.title }}
如:<w:t>{{ document.title }}</w:t>
同理hello word!这个段落我们也以相同方法替换为{{ document.para }}
3.接下来我们处理表格相关的内容
传递参数document.table,这是一个列表T1,T1中每个元素也是一个列表r1,r2,r3…rn;
r1,r2,r3…rn指代表中的行,它们中的元素则代表该行的每个单元,这里以for循环来依次写入表中数据
4.通过jinja2向模板传递参数,并保存到文件
from jinja2 import Environment, FileSystemLoaderdef create_word(document_data):
env = Environment(loader=FileSystemLoader('./'))
template = env.get_template("template.xml")
render_content = template.render(document=document_data)
with open("D:/py/Performance Analysis/hello.xml", "w", encoding="utf-8") as f:
f.write(render_content)
if __name__ == '__main__':
document = {"title": "Hello",
"para": "hello world. I'm fine!",
"table": [["", "Anna", "Joe"],
["ID", "001", "002"],
["height", "165", "180"],
["Age", "21", "21"]]}
create_word(document)
接下来就是见证奇迹的时刻!
文档中表格等的具体格式可以通过模板事先设置好,之后替换变量,传递数据,就能很容易实现想要的效果
二、docx模块
同样以建立表格为例,这里新建一个3x3的表格
from docx import Documentdef create_table(row, column):
document = Document()
table = document.add_table(rows=row, cols=column,)
table.autofit = False
for row_index, rows_obj in enumerate(table.rows):
for col_index, cell_obj in enumerate(rows_obj.cells):
cell_obj.text = "123456789"
document.save('test.docx')
if __name__ == '__main__':
create_table(3, 3)
以上是 Python操作Word文档,建表 的全部内容, 来源链接: utcz.com/a/52182.html