python pandas excel文件如何一次性读取全部sheet,并重新一次性写入多个sheet?

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

如有帮助,记得点赞三连~

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值