python读取word表格并将表格作为一行属性写入Excel
平台:pycharm
语言:python
读取word中的表格数据,并将表格中的内容写入Excel,在word中的一个表格,在Excel写入后展现为一行数据。为了确保写入的数据比较完整美观,需要对word中的表格数据进行规整处理,否则,会出现重复问题或者空格符。
from docx import Document
import xlwt
import openpyxl
from openpyxl import Workbook, workbook
from openpyxl import load_workbook
from openpyxl.writer.excel import ExcelWriter
import docx
fn = 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 = 22
mm = 0
tablelist = []
for i in range(0, len(value_list)):
table = value_list[mm:j]
j = j + 22
mm = mm + 22
tablelist.append(table)
# 将list中的list进行规整 循环对table进行规整和写入
wb = load_workbook("E:\\PythonProgram\\read_word\\1.xlsx")
ws = wb['Sheet1']
sheet = wb.active
col = 1
row = 1
listss = []
num = 0
for 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 = cros
col += 1
listss.clear()
row += 1
col = 1
wb.save("E:\\PythonProgram\\read_word\\1.xlsx")
需要通过命令行对调用的库进行安装:pip install ***
浙公网安备 33010602011771号