读取word表格数据,写入excel。之上半部
import docx
import os
import numpy as np
import pandas as pd
import re
path = r'D:\hard_way' #定义word文件路
doc = docx.Document(path+'\ceshi.docx') #读入word文档
len(doc.paragraphs) #段落数量
str_text = []
for i in doc.paragraphs:
str_text.append(i.text) #只获取每个段落的文本内容
#print(i.text)
print(str_text)
english_text = []
for i in str_text:
if re.search(r'[a-zA-Z]',i): #对获取的内容进行筛选,条件为是否包含英文备注的内容
english_text.append(i)
#print(i)
'''
这里是个人需要提取带字母的段落内容
'''
tables = doc.tables #获取所有表格式内容
tab1 = tables[0] #获取其中一个
def get_table(table):
'''
获取word档中 所有表格内容
'''
res = []
for i in range(len(table.rows)):
#遍历表格的所有行
data = []
row_cell = table.rows[i].cells
#获取行信息的每一列对应单元格值
for cell in row_cell:
#对每一个单元格值遍历 添加至列表
data.append(cell.text)
#print(cell.text)
res.append(data)
#构建列表嵌套的数据
return res
tb1 = get_table(tab1)
df = pd.DataFrame(tb1[1:],columns=res[0])
print(tb1)
df.head()
lsts = []
for table in tables:
table = get_table(table)
lsts.append(table)
print(len(lsts))
nlst = []
for lst in lsts[::2]:
#步长为2 选取表格操作,跳过不需要的
#print(lst)
nlst.append(lst)
'''
这部分是为获取部分表格数据
'''
lst03 = []
for i in range(0,len(nlst),3):
#每三个表格
print(len(nlst[i:i+3]))
len(nlst)
下半部分,还在戳脑袋。就是怎样把english_text 每一个元素,设为tb1 每张excel表的标题。
还有同一个excel中一次性写入多个sheet,惭愧…