defappend_df_to_excel(filename, df, sheet_name='Sheet1', startrow=None, truncate_sheet=False, **to_excel_kwargs): ifnot os.path.isfile(filename): df.to_excel( filename, sheet_name=sheet_name, startrow=startrow if startrow isnotNoneelse0, **to_excel_kwargs) return # ignore \[engine\] parameter if it was passed if'engine'in to_excel_kwargs: to_excel_kwargs.pop('engine') writer = pd.ExcelWriter(filename, engine='openpyxl', mode='a') # try to open an existing workbook writer.book = load_workbook(filename)
# get the last row in the existing Excel sheet # if it was not specified explicitly if startrow isNoneand sheet_name in writer.book.sheetnames: startrow = writer.book[sheet_name].max_row
# truncate sheet if truncate_sheet and sheet_name in writer.book.sheetnames: # index of \[sheet\_name\] sheet idx = writer.book.sheetnames.index(sheet_name)