python3学习笔记之十一——合并文件夹下的exce文件

该博客介绍了在多人协作环境下,用Python实现一键合并多个Excel文件的方法。使用Python 3.7和openpyxl 2.5.5,思路包括获取文件名、遍历载入文件、新建存储文件、对比合并sheet页,但存在不能保留格式等缺陷。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目标:在多人协作的环境下,实行一键合并多个excel

缺陷:不能保留excel的格式,没有考虑图标之类

环境:

python3.7

openpyxl 2.5.5

思路如下:

1.获取文件夹下的所有excel的文件名

2.通过for循环遍历excel文件,openpyxl.load_workbook载入excel文件

3.新建一个excel文件用于存储合并后的文件

4.获取excel表里的sheet页,将sheet页和合并文件对比,如果存在,直接合并,如果不存在,则在合并文件中新建一个同名sheet

代码比较简单,直接上!


import openpyxl
import os
 
def getfile():
    filenames = os.listdir('.')
    mf = []
    for filename in filenames:
        if 'xlsx' in filename:
            mf.append(filename)
    return mf
 
def copyxl(wb,f):
    print(f)
    wb1 = openpyxl.load_workbook(f)
    wb1names = wb1.sheetnames
    print(wb1names)
    wbnames = wb.sheetnames
    print(wbnames)
    for name in wb1names:
        if name not in wbnames:
            wb.create_sheet(name)
            ws = wb[name]
            maxr = 0
        else:
            ws = wb[name]
            maxr = ws.max_row
        
        ws1 = wb1[name]
        for m in range(1,ws1.max_row+1):
            for n in range(1,1+ws1.max_column):
                cell = ws1.cell(m,n).value
                ws.cell(maxr+m,n).value = cell

    wb.save('merge.xlsx')
    wb1.close()
                
 
def mergexl():
    wb =openpyxl.Workbook()
    filenames = getfile()
    for f in filenames:
        copyxl(wb,f)
    wb.close()
 
if __name__ == '__main__':
    mergexl()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值