python docx模块读取word表 遇到合并单元格时的处理
通过docx模块,读取word里面表格,并进行修改。
现在我遇到的表格是这样:
里面行,列均有合并单元格的情况,为了正确读取到位置,用下面代码做了个试验,判断每个单元格的行列号。
from docx import Document
if __name__ == "__main__":
word_file_name = r"自动填表试验.docx"
doc = Document(word_file_name)
tables = doc.tables
# 确定要填写第几张表
table = tables[0]
for i in range(0, len(table.rows)):
row = table.rows
for j in range(0, len(table.columns)):
cell = table.cell(i,j)
print(f"单元格({i},{j})的值为:{cell.text}\n")
运行完毕后,发现docx模块,在单元格判断上,是按行列细化成最多的单元格,和列。遇到合并的情况,对其进行行列拆分。
比如上表,在docx眼中,是这样的:
明白这点后,读取、修改指定单元格内容就变得很清楚了。