关于如何一次性读取全部sheet,可看我之前写的一篇博客
;
本文重点讲述如何对同一个excel文件一次性写入多个sheet数据
代码示例:
import pandas as pd
writer = pd.ExcelWriter("新数据.xlsx")
sheet1Data = [] # 这个为要向Sheet1写入的数据
pd_look1 = pd.DataFrame(sheet1Data)
pd_look1.to_excel(writer, sheet_name="Sheet1")
sheet2Data = [] # 这个为要向Sheet2写入的数据
pd_look2 = pd.DataFrame(sheet2Data)
pd_look2.to_excel(writer, sheet_name="Sheet2")
# 最后保存写入,并释放
writer.save()
writer.close()
查看结果:
以上说明是确实生成了两个sheet,说明已实现。
完整代码如下:
import pandas as pd
# 读取excel 某个sheet下的数据,将其转化为列表数据,方便操作
def get_excel_sheet_data(filename, sheetname):
try:
df = pd.read_excel(filename, sheet_name=sheetname)
dataList = df.to_dict(orient='records') # 转换为列表
return dataList
except:
print('未能打开此文件,请确认文件名及路径是否正确')
return []
# 读取excel 所有sheet表名,并将其转化为列表返回
def get_excel_sheet_list(filename):
try:
df = pd.read_excel(filename, sheet_name=None)
return df.keys()
except Exception as e:
print(e)
return []
if __name__ == '__main__':
fileName = '数据.xlsx'
sheetList = get_excel_sheet_list(fileName) # 获取sheet列表
print(sheetList)
writer = pd.ExcelWriter("新数据.xlsx")
for i in sheetList: #遍历每个sheet名称
sheetData = get_excel_sheet_data(fileName, i) # 读取每个sheet下的数据
for j in sheetData: #取出每一项的数据
# do something
# 依次根据sheet名称对“新数据.xlsx”此文件多次写入Sheet
pd_look = pd.DataFrame(sheetData)
pd_look.to_excel(writer, sheet_name=i)
# 最后保存写入,并释放
writer.save()
writer.close()
如有帮助,记得点赞三连~