比pandas更快捷,openpyxl一键批量合并多个多表格excel文件

这是一个使用Python的openpyxl库实现的程序,用于批量整合指定文件夹中的Excel工作表。程序遍历文件夹,读取每个Excel文件的所有工作表,将非空单元格内容复制到新的汇总工作簿中,最后保存为'汇总.xlsx'。用户通过图形用户界面选择源文件夹,点击'提交'开始处理,完成后弹窗提示处理完毕。
摘要由CSDN通过智能技术生成

废话不多说,上代码。

import os
import openpyxl as px

import PySimpleGUI as sg
import sys

sg.ChangeLookAndFeel('GreenTan')



def zhengli():   
    
    wb2 = px.Workbook()
    ws4 = wb2.active
    wb2.save(path + "/汇总.xlsx")
    print(path + "/汇总.xlsx")

    m=0
    for file in os.listdir(path):
        if ".xlsx" in file:
            try:
                wb = px.load_workbook(path+"/"+file)
                sheets = wb.get_sheet_names()                
                print(sheets)

                for i in range(len(sheets)):
                    ws = wb.get_sheet_by_name(sheets[i])
                    mr = ws.max_row
                    mc = ws.max_column
                    print(mr, mc)
                    if mr!=0:                   #如果表格为空,则不处理
                        for i in range(1, mr+1):
                            m = m+1                            
                            for j in range(1, mc+1):                                
                                if (ws.cell(i, j).value != None) and ("请勿" not in str(ws.cell(i, j).value)):                    
                                    ws4.cell(m, j).value = ws.cell(i, j).value  
                                    print(m, i, j)
                                
                wb2.save(path + "/汇总.xlsx")
                                
            except:
                print(file, "打不开!!!")
                pass
        




layout = [
    [sg.Text("题库一键整理小程序", font="黑体 16", text_color = "red")],
    [sg.Text("选择源文件夹:", font="黑体 12"), sg.Input(size = (20, 1)), sg.FolderBrowse()],
    [sg.Submit("提交", font="黑体 12"), sg.Cancel("取消", font="黑体 12")]
    
    ]
window = sg.Window("题库一键整理小程序", layout)

while True:
    event, values = window.read()

    if event == "提交":
        
        path = values[0]
        print(path)      

        zhengli()

        sg.Popup("处理完毕!\t 结果文件保存为:%s" %(path + "/汇总.xlsx"))
        window.close()
        sys.exit()
        break
        
               

    if event == "取消":
        window.close()
        sys.exit()
        
        break

    window.close()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值