通过Python在Excel工作表中循环

问题描述 投票:0回答:1

我正在尝试从一个Excel文件中提取所有数据(数据从同一文件散布到不同的表中)到一个新的Excel文件中。>

   import pandas as pd
   import glob as glob

appended_data = []
f_list = glob.glob(r'C:\Users\Sarah\Desktop\test\
               *.xlsx') 
for f in f_list: 
    data = pd.read_excel(f, sheet_name= ('May', 'April'))
    appended_data.append(data)
appended_data = pd.concat(appended_data)
appended_data.to_excel(r'C:\Users\Sarah\Desktop\test\appended.xlsx')

如果我尝试下面的代码,问题出在工作表名称中:

   data = pd.read_excel(f, sheet_name= [0,1,2,3])

我收到值错误:没有可串联的对象

该代码仅在我输入一张纸的名称时有效:

     data = pd.read_excel(f, sheet_name="April")

但是当我尝试两张或更多张纸的名称时不起作用:

        data = pd.read_excel(f, sheet_name= ('May', 'April'))

如何告诉代码遍历所有工作表?谢谢

我正在尝试从一个excel文件中提取所有数据(数据从同一文件散布到不同的表中)到一个新的excel文件中。

使用pd.ExcelFile类获取所有工作表名称

sheet_names = pd.ExcelFile(f).sheet_names

并通过生成器进行迭代

appended_data = pd.concat((pd.read_excel(f, sheet_name=s) for s in sheet_names))

excel pandas glob
1个回答
0
投票
使用pd.ExcelFile类获取所有工作表名称
© www.soinside.com 2019 - 2024. All rights reserved.