【问题标题】:How to write to an Excel sheet without exporting a dataframe first?如何在不先导出数据框的情况下写入 Excel 工作表?
【发布时间】:2018-04-20 00:51:07
【问题描述】:

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

我试过了,但是不行:

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)

我的导出空数据框的解决方案有什么替代方法吗?

【问题讨论】:

    标签: python pandas xlsxwriter


    【解决方案1】:

    您提到您使用了 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。

    【讨论】:

    • 所以我的错误是运行 writer.book.add_worksheet('mytab') ws=writer.sheets['mytab'] 而不是 ws = writer.book.add_worksheet('mytab')
    • 哦,我明白了。而且您可能会收到 keyerror:'mytab' 消息,就像您尝试过的其他一些方法一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    相关资源
    最近更新 更多