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

目标:在多人协作的环境下,实行一键合并多个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):
    wb1 = openpyxl.load_workbook(f)
    wb1names = wb1.sheetnames
    wbnames = wb.sheetnames
    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(97,97+ws1.max_column):
                n = chr(n)
                i = '%s%d' % (n,m)
                j = '%s%d' % (n,maxr+m)
                cell = ws1[i].value
                ws[j].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()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章