I wrote a function so that I can write multiple dataframes onto a single excel sheet, then have multiple sheets within one excel workbook. I am able to achieve the first part, but not the second. When the script runs, it overwrites the existing tab and writes over it with the new one, meaning that every time I open the output file, it only has one sheet, the latest one.
I've always been a little puzzled by the writer.save() function and when to use it (i.e.: in or our of a loop). Any suggestions?
def dfs_to_sheet(dflist, bookname, sheetname, startrow = 0):
writer = pd.ExcelWriter('{}.xlsx'.format(bookname), engine='openpyxl')
numdfs = 0
startrow = 0
for i in dflist:
if numdfs == 0:
i.to_excel(writer, sheet_name=sheetname, startrow = startrow)
elif numdfs != 0:
i.to_excel(writer, sheet_name = sheetname, startrow = startrow)
startrow = startrow + len(i) + 2
numdfs += 1
writer.save()