【Python】多个dataframe存入excel的不同的sheet表里,而不会被覆盖的方法
我发现,我原来用的多个工作簿存入的方法,发现不太可行了。当使用for循环的时候,原来的sheet 会被新的表给覆盖,后来我找到一种新的方法:
with pd.ExcelWriter(file_name ) as writer:Table.to_excel(writer, sheet_name=sheet_name, index=False)
我们现在有多个dataframe的表,需要一个个将他们存入到excel的不同的工作簿中。
逻辑应该是这样的:
- 读取excel表
- 获取多个dataframe遍历,要在读取excel表里面,如果是放在外面就会被覆盖,注意sheet_name 不能一样的
- 注意存入的时候,不同的sheet表,取不同的名称
file_name="./tese.xlsx"
with pd.ExcelWriter( file_name ) as writer: #读取excel表for i in range(len(dataframes)): #获取多个dataframe遍历sheet_name ="sheet_"+str(i)Table=dataframes[i]Table.to_excel(writer, sheet_name=sheet_name, index=False)
结果:
或者使用 openpyxl 库的方法。
这需要为每个工作簿创建一个 Worksheet
对象,并将它们保存到同一个工作簿(Workbook)中。
from openpyxl import Workbook# 创建一个新的工作簿
wb = Workbook()# 添加多个工作表
ws1 = wb.active
ws1.title = "Sheet 1"
ws1.append(["Column 1", "Column 2", "Column 3"]) # 添加标题行
ws1.append([1, 2, 3]) # 添加数据行ws2 = wb.create_sheet("Sheet 2")
ws2.append(["Column A", "Column B"])
ws2.append([4, 5])# 可以继续添加更多的工作表...# 保存工作簿
wb.save("multiple_sheets.xlsx")
结果:
这个方法也可以实现效果,两个表都顺利存入了。