python 批量处理word中表格导入excel

演示图片:

 

 

 

 

 

 

 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()

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值