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引擎,但是即使那样模板的内容也会丢失,并且数据帧将在两行之后写入。上面的行之前有一些标头,但现在为空。
只需使用 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)