XlsxWriter从特定单元格开始写入数据帧

时间:2019-03-20 21:29:04

标签: python pandas xlsxwriter

我正在使用xlsxwriter创建一个Excel文件。目前,我正在执行以下操作:

import datetime
import pandas as pd
import xlsxwriter

workbook = xlsxwriter.Workbook('Test.xlsx')
worksheet = workbook.add_worksheet()

datetime_format = workbook.add_format({
    'font_size': 12
})
worksheet.write('C2', datetime.datetime.now().strftime("%Y-%m-%d %H:%M"), datetime_format)

# Rest removed for brevity. I simply have many stuff that 
# I manually write to make the design as I want.

workbook.close()

writer = pd.ExcelWriter('Test.xlsx', engine='xlsxwriter')
result.to_excel(writer, startrow=6, startcol=3) # Start from D7.
writer.save()

现在,这似乎可以重写我以前使用xlsxwriter手动编写的所有内容。另外,我注意到xlsxwriter默认不支持写入数据帧,对吗?我如何结合xlsxwriterpandas来手动编写一些内容以执行Excel工作表,然后再从特定单元格开始写入所有数据框内容?

1 个答案:

答案 0 :(得分:2)

您需要四处移动。我还建议阅读XlsWritter documentation,了解如何将其与熊猫一起使用。

writer = pd.ExcelWriter('Test.xlsx', engine='xlsxwriter')

workbook = writer.book

result.to_excel(writer, sheet_name='Sheet1', index=False, startrow=6, startcol=3) # Start from D7.

worksheet = writer.sheets['Sheet1']

datetime_format = workbook.add_format({
    'font_size': 12
})
worksheet.write('C2', datetime.datetime.now().strftime("%Y-%m-%d %H:%M"), datetime_format)

writer.save()

首先,我们使用pd.ExcelWriter()创建我们的writer对象,并将xlswriter作为引擎。一旦有了作者,就可以使用.book类vriable访问我们的工作簿。目前,我们可以使用df.to_excel()将数据写入工作簿。我们将使用sheet_name的{​​{1}}参数来创建和命名工作表。此时,我们可以使用to_excel类变量并将工作表名称作为键来访问工作表-在我们的情况下为.sheets

从那里可以在使用或不使用pandas对象的情况下将附加值写入工作表-如下代码所示。