代码之家  ›  专栏  ›  技术社区  ›  Pythonista anonymous

Pandas和xlsxwriter:如何在不导出数据帧的情况下创建新工作表?

  •  0
  • Pythonista anonymous  · 技术社区  · 5 年前

    如果我直接调用xlsxwriter模块,很容易在新文件中创建新工作表并写入其单元格,例如:

    import xlsxwriter
    workbook = xlsxwriter.Workbook('test 1.xlsx')
    wks1=workbook.add_worksheet('Test sheet')
    wks1.write(0,0,'some random text')
    workbook.close()
    

    然而,我的问题是: 如何使用Pandas.ExcelWriter对象创建新工作表? 对象可以在导出数据帧时创建新工作表,但是 如果我没有要导出的数据帧?

    E、 假设我已经将4个数据帧导出到4个单独的工作表中,现在我只想在新工作表中写入一些文本。我找到的唯一解决方案是创建一个空数据框,导出(创建新工作表),然后写入工作表:

    import pandas as pd
    writer = pd.ExcelWriter('test 2 .xlsx',  engine='xlsxwriter')
    df=pd.DataFrame()
    df.to_excel(writer, 'new sheet', index=False, startrow=0,startcol=0)
    writer.sheets['new sheet'].write(0,0,'some random text')
    writer.close()
    

    还有别的办法吗?add_worksheet()似乎只是工作簿类的方法,而不是ExcelWriter的方法

    0 回复  |  直到 5 年前
        1
  •  1
  •   jmcnamara    5 年前

    我认为您的操作方式没有任何问题,但您也可以使用ExcelWriter中的XlsxWriter工作簿对象,如下所示:

    writer = pd.ExcelWriter('test 2 .xlsx', engine='xlsxwriter')
    
    workbook = writer.book
    worksheet = workbook.add_worksheet('new sheet')
    worksheet.write(0, 0, 'some random text')