1. 简介:
本篇继续学习python操作word文档的相关知识。本篇主要学习:
1)如何获取一个已经存在文档中的表格的内容;
2)如何修改一个已经存在文档中的表格的内容;
2. 获取word文档中的表格数据
代码如下:
def fetch_doc_table():
doc_name = "念奴娇_赤壁怀古_1654065536.139004.docx"
doc = docx.Document(doc_name)
table = doc.tables[0]##获取表格
table_rows =len(table.rows)#获取表的行数
# table_cells =len(table.cells)#获取表的列数
print("table_rows:",table_rows)
# print("table_cells:",table_cells)
for row in table.rows:
for cell in row.cells:#获取一个单元格
text_str = cell.text
print(text_str)
print("\n")
说明:
1)doc.tables[0]: 获取文档中的第一个表格;
2)table.rows:获取表格数据;
3)row.cells: 获取一个单元格数据;
4)cell.text:获取单元格的文本内容。
运行结果:
% python word_util.py
table_rows: 4
作者
朝代
李白
唐
杜甫
唐
苏轼
宋
3. 修改word文档中的表格数据
代码如下:
#修改表格内容
def modify_doc_table():
doc_name = "念奴娇_赤壁怀古_1654065536.139004.docx"
doc = docx.Document(doc_name)
value_list= ["王维","唐"]
table = doc.tables[0]##获取表格
table_rows =len(table.rows)#获取表的行数
# table_cells =len(table.cells)#获取表的列数
print("table_rows:",table_rows)
# print("table_cells:",table_cells)
for i in range(table_rows):
row = table.rows[i]
if i < table_rows-1:
continue
else: #要修改的数据
cells = row.cells
print(cells)
print(len(cells))
for j in range(len(row.cells)):
cell = row.cells[j]
cell.text = u"" #清空
run = cell.paragraphs[0].add_run(value_list[j])
run.font.name = u'宋体'
run.font.bold = True
new_doc_name = "念奴娇_赤壁怀古_1654065536.139004_modified.docx"
doc.save(new_doc_name)
?说明:
1)run = cell.paragraphs[0].add_run(value_list[j]):给表格的单元格设置内容
?运行结果:
?
?
|