将多个工作簿合并
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()