pandas:如何在不先导出数据框的情况下写入Excel工作表?

时间:2017-11-07 14:59:13

标签: python pandas xlsxwriter

我正在尝试将一些文本写入Excel文件中的特定工作表。 我将一些pandas数据帧导出到其他选项卡,但在这个中我只需要一些文本 - 基本上是一些注释,解释了其他选项卡的计算方式。

我试过这个,但它不起作用:

import pandas as pd
writer=pd.ExcelWriter('myfile.xlsx')
writer.sheets['mytab'].write(1,1,'This is a test')
writer.close()

我尝试添加writer.book.add_worksheet('mytab')

ws=writer.sheets['mytab']
ws.write(1,1,'This is a test')

但在所有情况下我都会得到:keyerror:'mytab'。 我找到的唯一解决方案是在将文本写入同一选项卡之前将空数据框写入选项卡:

emptydf=pd.DataFrame()
emptydf['x']=[None]
emptydf.to_excel(writer,'mytab',header=False, index=False)

我当然可以创建一个工作簿实例,就像xlsxwriter文档中的示例一样:http://xlsxwriter.readthedocs.io/worksheet.html 但是,我的问题是我已经有一个pd.ExcelWriter实例,在我的其余代码中使用它来创建其他excel表。

我甚至尝试将工作簿实例传递给to_excel(),但它不起作用:

workbook   = xlsxwriter.Workbook('filename.xlsx')
emptydf.to_excel(workbook,'mytab',header=False, index=False)

我的导出空数据框的解决方案有什么替代方案 - 这似乎是无法获得的吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您提到您使用了writer.book对象中的add_worksheet()方法,但它似乎可以工作并执行您希望它执行的操作。下面我已经介绍了一个可以成功运行的可重现的例子。

import pandas as pd

print(pd.__version__)

writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
workbook  = writer.book
ws = workbook.add_worksheet('mytab')

ws.write(1,1,'This is a test')

writer.close()

我以为我还提到我使用的是pandas 0.18.1。