1 简介:
本篇继续python操作word之旅:利用python给word文档加入表格。
上几篇中,学习了是用python进行简单的word文档的创建,word文档的内容获取,以及内容修改,具体参考如下链接:
传送门:
Python3-word文档操作(一):利用python创建word文档,并且设置标题和正文的内容,设置字体样式
Python3-word文档操作(二):利用python获取word文档的内容
Python3-word文档操作(三):利用python修改word文档的内容
2 举例:
在word文档中加入作者-朝代表格。效果图如下:
表格内容:
作者
朝代
李白
唐
杜甫
唐
苏轼
宋
开发思路:
1)先创建一个word文档(本例子中,直接打开一个已经存在的文档);
2)调用add_table,创建并返回这个table的对象。add_table的参数包括行数,列数;
3)设置表格的数据;
4)设置表格的样式等参数。
5)保存成一个新的word文件。
具体代码如下:
# -*- coding: utf-8 -*-
import os
import sys
import time
#from docx import Document
import docx
from docx.shared import RGBColor
def create_doc_table():
doc_name = "念奴娇_赤壁怀古.docx"
doc = docx.Document(doc_name)
#表格数据
field_list = ["作者","朝代"]
content_list = [["李白","唐"],["杜甫","唐"],["苏轼","宋"]]
table = doc.add_table(rows=4, cols=len(field_list))
#表格样式
table.style = 'Light List Accent 1'
#表格各个列的标题
cells = table.rows[0].cells
for i in range(len(field_list)):
cells[i].text = field_list[i]
#表格内容
for rows_id in range(3):
item = content_list[rows_id]
row_cells_data = table.rows[rows_id+1].cells
for i in range(len(field_list)):
row_cells_data[i].text = item[i]
time_str = str(time.time())
print("time_str====",time_str)
#新文档的文件名
new_doc_name = "念奴娇_赤壁怀古_" + time_str+".docx"
doc.save(new_doc_name)
if __name__ == '__main__':
#create_doc()
#fetch_doc()
#update_doc()
create_doc_table()
运行结果:
生成了带有表格的word文档,如下图
说明:
1)create_doc_table: 核心函数。功能是:打开已经存在的一个表格,将需要的数据以表格的形式添加到这个word文档中,并且保存在新的文档中;
1)doc.add_table(rows=4, cols=len(field_list)): 创建一个表格,返回这个表格的对象;
2)table.rows[0].cells:获取一个表格的所有的列;
3)table.rows[rows_id+1].cells: 获取一个表格的单元格