python Excel表格合并

将excel表里相同工作簿的内容合并到一起

用到的第三方模块是pandas,readline模块是为了方便生成可执行程序后,在控制台复制粘贴。

import os
import pandas as pd
import readline
readline.parse_and_bind("control-v: paste")
path = input('请输入您要合并的文件所在的文件夹路径:')
print('合并中...')

def get_dir_name(path): #获取所要合并文件的绝对路径
    dir_path = os.listdir(path)
    for i in dir_path:
        abs_path = os.path.join(path,i)
        lst_dir.append(abs_path) #['C:\\Users\\Desktop\\新建文件夹\\1.xlsx', 'C:\\Users\\hx\\Desktop\\新建文件夹\\2.xlsx']
    return abs_path

def get_sheet(abs_path): #读取工作簿
    global sheet_names,sheet_num
    excel_sheet = pd.ExcelFile(abs_path) #<pandas.io.excel._base.ExcelFile object at 0x012EDD10>
    sheet_names = excel_sheet.sheet_names #[工作簿1,工作簿2,工作簿3]
    sheet_num = len(sheet_names) #3
    return sheet_names, sheet_num

def open_file(*args): #打开文件
    for k in sheet_names: # 工作簿1
        excel_read = pd.ExcelFile(j) # 读取文件
        data = excel_read.parse(sheet_name=sheet_names[x]) #工作簿1
    lst_data_frame[x].append(data)

if __name__ == '__main__':
    lst_dir = []
    get_sheet(get_dir_name(path))
    lst_data_frame = [[] for i in range(sheet_num)]  #[[],[],[]...]
    x = 0
    while x <= (len(lst_data_frame)-1):
        for j in lst_dir:
            open_file(j,x)
        x += 1
    writer = pd.ExcelWriter(r'%s\合并结果.xlsx' %path)
    for l in range(x):
        res = pd.concat(lst_data_frame[l], axis=0,ignore_index=True) #将列表转换为DataFrame
        res.to_excel(writer, sheet_name='sheet%s'%l)
    writer.save()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值