需求1:汇总多个Excel文件,每个Excel只有一个sheet
import pandas as pd
import numpy as np
import os
import time
pd.set_option('display.max_columns',None)
# 定义一个空的DataFrame用于存储所有数据
result = pd.DataFrame()
path = 'D:\\DataAnalysis\\test1\\' # 要操作的文件夹名称
files = os.listdir(path) # 得到文件夹下面的所有文件名称
# 通过循环实现便利,读取出所有文件名称
for i in files:
try:
df = pd.read_excel(path+i,header = 1) # 第一行有备注的文字,不需要读取
result = df.append(result)
except:
print(i)
result.to_excel("D:\\DataAnalysis\\test1\\汇总结果1.xlsx",index = False)
需求2:如果需要汇总的Excel文件有多个sheet,那如何实现内容汇总?
查看Sheet列表,使用ExcelFile类读取Excel文件。然后,通过调用sheet_names属性来获取该文件中所有的Sheet名;接着再利用for循环读取每个sheet的文件
import pandas as pd
import numpy as np
import os
import time
pd.set_option('display.max_columns',None)
# 定义一个空的DataFrame用于存储所有数据
result = pd.DataFrame()
sheet_names = pd.DataFrame()
path = 'D:\\DataAnalysis\\test1\\' # 要操作的文件夹名称
files = os.listdir(path) # 得到文件夹下面的所有文件名称
# 通过循环实现便利,读取出所有文件名称
for i in files:
try:
# 查看Sheet列表,使用ExcelFile类读取Excel文件。然后,通过调用sheet_names属性来获取该文件中所有的Sheet名,
xlsx = pd.ExcelFile(path+i)
sheet_names= xlsx.sheet_names
# 读取每个Sheet中的数据
for sheet in sheet_names:
try:
df = pd.read_excel(xlsx,sheetname = sheet) # 从第一行开始读取
result = df.append(result)
except:
print(sheet)
except:
print(i)
result.to_excel("D:\\DataAnalysis\\test1\\汇总结果2.xlsx",index = False)