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

 

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