word文档提取指定表格到Excel和txt文档
代码:
from docx import Document # 导入库
from openpyxl import Workbook
workbook = Workbook()
worksheet = workbook.active
worksheet.title = 'sheet1'
worksheet2 = workbook.create_sheet('sheet2')
worksheet3 = workbook.create_sheet('sheet3')
path = "D:\\SC8F677X_2203A1\\SC8F677x用户手册_V0.0.docx" # 文件路径
document = Document(path) # 读入文件
tables = document.tables # 获取文件中的表格集
f = open('test.txt', 'w') # 创建txt文件
# 获取第一行第一列内容连续为地址的表格位置
index = -1 # 第index个表格
num = 0 # 所求表格的数量
while True:
index += 1
if tables[index].cell(0, 0).text == '地址':
num += 1
if tables[index + 1].cell(0, 0).text != '地址':
break
# 将第index-num+1到第index个表格取出来转到Excel和txt文件
for k in range(index - num + 1, index + 1, 1): # 选取符合要求的表格
for i, row in enumerate(tables[k].rows): # 读每行
row_content = [] # 生成列表
if i != 0:
for cell in row.cells[0:-1]: # 读一行中的所有单元格
c = cell.text
if c == '----':
row_content.append(c)
else:
if c not in row_content:
row_content.append(c)
elif c in row_content:
row_content.append(' ')
line = ','.join(row_content) # 列表转字符串
f.write(line + '\n')
worksheet.append(row_content)
workbook.save('test.xlsx') # 保存为.xlsx的Excel文件
f.close() # 关闭.txt文件
print("over")
提取的表格为连续第一行第一列内容相同的表格,这里提取的是 地址 这一元素