I have multiple dataframes, df1, df2 etc. Each dataframe contains different number of columns and rows. Using the StyleFrame library, is it possible to copy all the dataframes one by one into a single sheet in an excel file using the to_excel method by specifying cell locations? Currently, here's what I am doing:
writer = StyleFrame.ExcelWriter("filename")
sf1 = StyleFrame(df1)
#Perform formatting using apply_column_style, apply_headers_style etc.
sf1.to_excel(writer, sheet_name='Sheet1')
writer = StyleFrame.ExcelWriter("filename")
sf2 = StyleFrame(df2)
#Perform formatting using apply_column_style, apply_headers_style etc.
sf2.to_excel(writer, sheet_name='Sheet1') #Incorrectly overwrites df1 data in the excel
writer.save()
writer.close()
However, the sf2.to_excel() method overwrites df1 data in the excel. What I am looking for is to copy df1 data starting at cell location, say "A2", in Sheet1 and then sf2 data starting at location, say "B31", in the same sheet and so on.
Yes. Just like pandas.to_excel supports startrow and startcol arguments, so does StyleFrame.to_excel.
The API is pretty much the same as pandas's:
You need to create an excel_writer object, call to_excel on both styleframes and then call excel_writer.save:
from StyleFrame import StyleFrame, Styler
sf1 = StyleFrame({'a': [1]}, Styler(bg_color='yellow'))
sf2 = StyleFrame({'b': [1]}, Styler(bg_color='blue'))
excel_writer = StyleFrame.ExcelWriter('test.xlsx')
sf1.to_excel(excel_writer)
sf2.to_excel(excel_writer, startcol=3, startrow=2) # both are zero-based
excel_writer.save()
Outputs

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With