使用StyleFrame的to_excel方法将多个python数据帧复制到excel中

时间:2018-05-03 07:36:06

标签: excel python-3.x pandas styleframe

我有多个数据帧,df1,df2等。每个数据帧包含不同数量的列和行。使用StyleFrame库,是否可以使用to_excel方法通过指定单元格位置将所有数据框逐个复制到Excel文件中的单个工作表中?目前,我在做什么:

将df1写入excel文件的Sheet1

writer = StyleFrame.ExcelWriter("filename")
sf1 = StyleFrame(df1)

#Perform formatting using apply_column_style, apply_headers_style etc.

sf1.to_excel(writer, sheet_name='Sheet1')

将df2写入excel文件的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()

但是,sf2.to_excel()方法会覆盖excel中的df1数据。我正在寻找的是从单元格位置开始复制df1数据,在Sheet1中复制" A2",然后从位置开始复制sf2数据,比如说" B31",在同一张表格中等等。

1 个答案:

答案 0 :(得分:2)

是。就像pandas.to_excel支持startrowstartcol参数一样,StyleFrame.to_excel也是如此。

API与pandas几乎相同: 您需要创建excel_writer对象,在两个样式框架上调用to_excel,然后调用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()

输出

enter image description here