python Excel表格 合并

该代码实现了从用户指定的目录中选取多个Excel文件并将其内容合并成一个新的Excel文件。首先,通过`filedialog`获取用户选择的目录,然后读取目录中的所有Excel文件,使用`pandas`的`concat`函数将这些文件的内容拼接在一起,最后让用户选择保存合并后文件的路径。
摘要由CSDN通过智能技术生成

将多个工作簿合并

import pandas as pd
import tkinter as tk
from tkinter import filedialog


class Sheet_Concat:
    def __init__(self):
        self.choice = self.user_choice()
        self.sheets = self.get_sheets()
        self.excel = self.sheet_concat()
        self.file_path = self.user_choice

    def user_choice(self):
        tk.Tk().withdraw()
        filepath = tk.filedialog.askopenfilename()
        return filepath

    def get_sheets(self):
        excel_sheet = pd.ExcelFile(self.choice)
        sheet_names = excel_sheet.sheet_names
        return sheet_names

    def sheet_concat(self):
        df = pd.read_excel(self.choice,None)
        excel_concat = pd.DataFrame()
        for sheets in self.sheets:
            df_concat = df[sheets]
            excel_concat = pd.concat([excel_concat,df_concat])
        return excel_concat

    def save_as(self):
        tk.Tk().withdraw()
        file_path = filedialog.asksaveasfilename(title=u'保存文件')
        return self.excel.to_excel(file_path,index=None)


if __name__ == '__main__':
    obj = Sheet_Concat()
    obj.save_as()

将多个Excel表合并

import pandas as pd
import tkinter as tk
from tkinter import filedialog
import os


class Excel_Concat:
    def __init__(self):
        self.dirname = self.get_dirname()
        self.file_name = self.get_filename()
        self.excel = self.excel_concat()

    def get_dirname(self):
        tk.Tk().withdraw()
        dirpath = filedialog.askdirectory()
        return dirpath

    def get_filename(self):
        lst_dir = []
        dir_path = os.listdir(self.dirname)
        for fname in dir_path:
            abs_path = os.path.join(self.dirname, fname)
            lst_dir.append(abs_path)
        return lst_dir

    def excel_concat(self):
        excel_concat = pd.DataFrame()
        for file in self.file_name:
            df_concat = pd.read_excel(file)
            excel_concat = pd.concat([excel_concat,df_concat])
        return excel_concat

    def save_as(self):
        tk.Tk().withdraw()
        file_path = filedialog.asksaveasfilename(title=u'保存文件')
        return self.excel.to_excel(file_path,index=None)


if __name__ == '__main__':
    obj = Excel_Concat()
    obj.save_as()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值