当前位置:天才代写 > tutorial > Python教程 > python 实现合并多个excel文件-python手艺人

python 实现合并多个excel文件-python手艺人

2021-02-25 12:49 星期四 所属: Python教程 浏览:665

情况

工作上常常会碰到有文件格式一模一样的excel文档合并成一个独立的,一般大家的全是手动式拷贝,excel少得话手动式实际操作下就可以了,假如许多,便是不便,今日就而言下到python中如何解决这个问题

在python中应用openpyxl控制模块合拼好几个excel文档

xlsxwriter不可以实际操作目前的excel! xlwt、wlrd只有读写能力xls文件,而不可以实际操作xlsx文档 因此 只有用openpyxl,只有实际操作xlsx,可是更便捷!
execel 合拼器!依据字段名合拼,且容许sheet不一样

不兼容xls!! 后边考虑到变换 全自动变换很有可能会有什么问题的

完成编码以下:

import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

def find_excel_list():
    excel_list = []
    try:
        dir_path = 'input'
        files = os.listdir(dir_path )
        for file in files:
            if '.xlsx' in file:
                excel_list.append(dir_path '/' file)
    except Exception,e:
        pass
    return excel_list

def gen_xls(excel_list):
    from openpyxl import Workbook, load_workbook
    from openpyxl.drawing.image import Image

    if len(excel_list)<2:
        return
    data_dict = {}
    for excel_file in excel_list:
        new_wb = load_workbook(excel_file)
        sheet_names = new_wb.get_sheet_names()
        for sheet_name in sheet_names:
            data_sheet = new_wb.get_sheet_by_name(sheet_name)
            for row in data_sheet.iter_rows():
                row_num = row[0].row
                if row_num == 1: # 字段名标识
                    print row[0].value
                    sheet_name = row[0].value # 用第一个字段名取名,后边能够投射回来
                    if not sheet_name in data_dict:
                        data_dict[sheet_name]=[]
                        data_dict[sheet_name].append(row)
                else:
                    data_dict[sheet_name].append(row)

    wb = Workbook()
    for  sheet_name in data_dict:
        # sheet = wb.get_sheet_by_name(u"归纳销售量")
        sheet = wb.create_sheet(sheet_name)
        for row in  data_dict[sheet_name]:
            sheet.append([cell.value for cell in row])
        wb.save('result.xlsx') # 好像能够储存数次的

if __name__ == '__main__':
    excel_list = find_excel_list()
    gen_xls(excel_list)
 

    关键字:

天才代写-代写联系方式