Python 办公自动化之Excel批量合并

'''
    Excel文件合并
'''
#--coding:gbk
import os
import pandas as pd

'''
读取文件夹下面Excel文件的内容
'''
def read_excel_files(excelFolder,excelFileNames):
    
    excelDfs = {}

    # 如果文件夹路径是 /或 // 结尾 需要补全,目的是为了组合Excel文件绝对路径
    if not (excelFolder.endswith("/") or excelFolder.endswith("//")):
        excelFolder+="//"
         
    for excelFileName in excelFileNames:
        #excelFolder+excelFile  Excel 文件绝对路径
        df = pd.read_excel(excelFolder+excelFileName)
        #生成key
        key = excelFileName[0:excelFileName.find(".")]
        excelDfs[key]= df
    return excelDfs


'''
将多个Excel中的sheet 合并到一个Excel文件的sheet中。
'''
def merge_to_sheet(excelFileDfs,saveFilePath):

        dfsvalues = excelFileDfs.values()
        newDfs = pd.concat(dfsvalues,ignore_index=True)
        newDfs.to_excel(saveFilePath)
        print  "文件合并完成:"+ saveFilePath


'''       
将多个Excel中的sheet 合并到一个Excel 文件中。
'''
def merge_to_file(excelFileDfs,saveFilePath):
    
        excelWriter = pd.ExcelWriter(saveFilePath)
        
        for key,value in excelFileDfs.items():
            value.to_excel(excelWriter,sheet_name= unicode(key,"gbk"))
        excelWriter.save()
        excelWriter.close()
        print  "文件合并完成:"+ saveFilePath


'''
获取指定目录下的 Excel 文件名列表
'''
def getExcelFileName(dirPath):
    
    files = os.listdir(dirPath)
    excelFileName = []
    for item in files :
        if item.endswith("xlsx") or item.endswith("xls"):
            excelFileName.append(item)
    return excelFileName


'''
合并excel文件
参数:
excelFolder  excel文件夹
targetExcelFilePath 合并后的文件绝对路径
method  合并方式 1 合并到一个sheet中,2 合并到一个excel 文件中,产生多个sheet
'''
def mergeExcelFiles (excelFolder,targetExcelFilePath,method):
    
    #第一步获取目录下excel文件路径
    excelFileNames = getExcelFileName(excelFolder)
    #第二步读Excel文件内容
    excelDfs = read_excel_files(excelFolder,excelFileNames)
    #第三步合并Excel文件

    if method == 1:
        merge_to_sheet(excelDfs,targetExcelFilePath)
    if method == 2:
        merge_to_file(excelDfs,targetExcelFilePath)
    
if __name__== "__main__" :
    mergeExcelFiles("g:\\python","g:\\66.xlsx",2)
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值