如何将数据加载到 excel 模板到特定的 sheet 名称

How to load data into excel template into particular sheet name

我有一个模板文件Template.xlsx。 它有 2 sheets:“每月保费”和“每月损失”

然后我正在创建数据框 df。 我怎样才能简单地将 df 保存到“每月保费”sheet?

我认为这样的事情会奏效,但它创建了一个新的 sheet 名称。

import pandas as pd
from openpyxl import load_workbook

#sample df
df = pd.DataFrame()
df["A"] = [1,2,3,4,5]
df["B"] = ["A", "B", "C", "D", "E"]
#print(df)

path = r'C:\My\Path\Template1.xlsx'
book = load_workbook(path)
writer = pd.ExcelWriter(path, engine='openpyxl')
writer.book = book
df.to_excel(writer, sheet_name='Monthly Premium')

writer.save()
writer.close()

要将数据框保存到现有工作表,您必须在excel编写器中设置工作表集合。

试试这个代码:

###### create test file ######

from openpyxl import load_workbook, Workbook
wb = Workbook()
ws = wb.active
ws.title='Monthly Premium'  # rename default sheet
ws = wb.create_sheet('Monthly Losses')  # add sheet
wb.save(r'Template1.xlsx') 
  
######### main script #########

import pandas as pd
from openpyxl import load_workbook

#sample df
df = pd.DataFrame()
df["A"] = [1,2,3,4,5]
df["B"] = ["A", "B", "C", "D", "E"]
#print(df)

path = r'Template1.xlsx'
book = load_workbook(path)
writer = pd.ExcelWriter(path, engine='openpyxl')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)  # prevent new sheet
df.to_excel(writer, sheet_name='Monthly Premium')

writer.save()
writer.close()

输出