如何将数据框附加到Excel模板?

Fai*_*Ali 5 python dataframe python-3.x pandas openpyxl

我有一个xlsx带有一些页眉和其他信息的模板,我想要的只是用数据框填充该表,而不会丢失模板的内容。这是我正在使用的代码:

 writer = pd.ExcelWriter('xls/template.xlsx', engine='openpyxl')
 df.to_excel(writer, index=False, sheet_name='Sheet1',startrow=2,header=None)
 writer.save()
Run Code Online (Sandbox Code Playgroud)

我在某处读到要使用模板,我必须在编写器中使用openpyxl引擎,但是即使那样模板的内容也会丢失,并且数据帧将在两行之后写入。上面的行之前有一些标头,但现在为空。

ReK*_*eKx 4

只需使用 openpyxl 加载工作表并将数据帧写入其中即可。

import openpyxl
from openpyxl.utils.dataframe import dataframe_to_rows

wb= openpyxl.load_workbook('H:/your/dir/template.xlsx')
ws = wb.get_sheet_by_name('xyz')
rows = dataframe_to_rows(df)

for r_idx, row in enumerate(rows, 3):  #starts at 3 as you want to skip the first 2 rows
    for c_idx, value in enumerate(row, 1):
         ws.cell(row=r_idx, column=c_idx, value=value)
Run Code Online (Sandbox Code Playgroud)