平台:pycharm
语言:python
读取word中的表格数据,并将表格中的内容写入Excel,在word中的一个表格,在Excel写入后展现为一行数据。为了确保写入的数据比较完整美观,需要对word中的表格数据进行规整处理,否则,会出现重复问题或者空格符。
from docx import Documentimport xlwtimport openpyxlfrom openpyxl import Workbook, workbookfrom openpyxl import load_workbookfrom openpyxl.writer.excel import ExcelWriterimport docxfn = r'E:\PythonProgram\read_word\数据调查表.docx'doc = docx.Document(fn)value_list = list()for table in doc.tables:for row in table.rows:temp = list()for cell in row.cells:if cell.text not in temp:temp.append(cell.text)temp = [x.strip() for x in temp] # 去除temp中的换行符print(cell.text, end=' ')value_list.append(temp)print(len(value_list))# 获取文档的表格个数table_num = len(doc.tables)print("表格总数为%s" % table_num)# 选取第一个表table_0 = doc.tables[0]table_rows = len(table_0.rows)# 获取第一个表的行数print("单个表格行数为%s" % table_rows)# 对value_list进行拆分 使用循环进行切片j = 22mm = 0tablelist = []for i in range(0, len(value_list)):table = value_list[mm:j]j = j + 22mm = mm + 22tablelist.append(table)# 将list中的list进行规整 循环对table进行规整和写入wb = load_workbook("E:\\PythonProgram\\read_word\\1.xlsx")ws = wb['Sheet1']sheet = wb.activecol = 1row = 1listss = []num = 0for l in tablelist:for j in l:for k in j:# print(k)listss.append(k)for cros in listss:sheet.cell(row, col).value = croscol += 1listss.clear()row += 1col = 1wb.save("E:\\PythonProgram\\read_word\\1.xlsx")
需要通过命令行对调用的库进行安装:pip install ***