演示图片:
auto_we源码:
import xlrd, xlwt
from xlutils.copy import copy as xl_copy
from docx import Document
import os
path = "words文件夹"
if not os.path.exists(path):
os.makedirs(path)
files= os.listdir(path)
word_list = []
for file in files:
if(file[-4:]=="docx"):
word_list.append(file)
else:
with open("错误文件列表.txt", 'a')as f:
f.write(file + "\n")
for file in word_list:
data_form = []
doc = Document(f"./words文件夹/{file}")
table_num = len(doc.tables)
try:
for i in range(0, 3):
table = doc.tables[i]
for j, col in enumerate(table.columns):
col_content = []
for cell in col.cells:
col_content.append(cell.text)
data_form.append(col_content)
except:
with open("错误文件列表.txt",'a')as f:
f.write(file+"\n")
if not os.path.exists('DataBase.xls'):
# 新建工作簿
work_book = xlwt.Workbook()
work_sheet = work_book.add_sheet(file[:-5])
for i in range(0,len(data_form)):
for j in range(0,len(data_form[i])):
work_sheet.write(j, i, data_form[i][j])
work_book.save('DataBase.xls')
else:
rb = xlrd.open_workbook('DataBase.xls', formatting_info=True)
wb = xl_copy(rb)
work_sheet = wb.add_sheet(file[:-5])
for i in range(0, len(data_form)):
for j in range(0, len(data_form[i])):
work_sheet.write(j, i, data_form[i][j])
wb.save('DataBase.xls')
GUI源码:
import tkinter as tk
from tkinter import messagebox
from docx import Document
import os
import xlrd, xlwt
from xlutils.copy import copy as xl_copy
def check():
if(e1.get()[-4:]!="docx"):
messagebox.showwarning(title="转换失败", message="word文件后缀必须是docx")
word_pd=os.path.exists(f"./words文件夹/{e1.get()}")
excel_pd=os.path.exists("DataBase.xls")
if(word_pd and excel_pd):
operate()
else:
if(word_pd==False):
messagebox.showwarning(title="转换失败", message="word文件不存在")
else:
messagebox.showwarning(title="转换失败", message="excel文件不存在")
return
def operate():
file=e1.get()
data_form = []
doc = Document(f"./words文件夹/{file}")
try:
for i in range(0, 3):
table = doc.tables[i]
for j, col in enumerate(table.columns):
col_content = []
for cell in col.cells:
col_content.append(cell.text)
data_form.append(col_content)
except:
with open("错误文件列表.txt", 'a')as f:
f.write(file + "\n")
# 新建工作簿
rb = xlrd.open_workbook('DataBase.xls', formatting_info=True)
wb = xl_copy(rb)
work_sheet = wb.add_sheet(file[:-5])
for i in range(0, len(data_form)):
for j in range(0, len(data_form[i])):
work_sheet.write(j, i, data_form[i][j])
wb.save('DataBase.xls')
messagebox.showinfo(title="转换成功", message="请自行查看!")
root = tk.Tk()
root.title("we数据导入器")
root.geometry("400x200+570+300")
root["background"] = "#C9C9C9" # 浅灰
l1=tk.Label(root, text="word文件名(带后缀):",width=18).place(x=60, y=80)
# tk.Label(root, text="excel文件名:",width=12).place(x=10, y=40)
# tk.Label(root, text="sheet表单名:",width=12).place(x=10, y=70)
tk.Label(root, text="使用前请确保word文件在words文件夹内,且Database.xls在当前目录下",width=50).place(x=20, y=30)
e1 = tk.Entry(root,width=20)
# e2 = tk.Entry(root,width=40)
# txt = tk.StringVar(value='sheet1')
# e3 = tk.Entry(root,width=40,textvariable="sheet1")
e1.place(x=200,y=80)
# e2.place(x=110,y=40)
# e3.place(x=110,y=70)
tk.Button(root, text="确定", width=20,height=2, command=check).place(x=120, y=130)
root.mainloop()