赞
踩
关于如何一次性读取全部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()

如有帮助,记得点赞三连~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。