【问题标题】:Remove/ Clear worksheet if dataframe is empty如果数据框为空,则删除/清除工作表
【发布时间】:2020-12-16 22:45:16
【问题描述】:

如果我要写入的数据框为空或行数少于原始数据,我如何清除 Excel 工作表?

基本上,

excel表格:

Header1   Header2   Header3
aaa       bbb       ccc
ddd       eee       fff

数据帧:

Header1   Header2   Header3
111       222       333

Excel 工作表上的预期输出:

Header1   Header2   Header3
111       222       333

我得到了什么:

Header1   Header2   Header3
111       222       333
ddd       eee       fff

我使用的代码:

book = load_workbook(filepath)
writer=pd.ExcelWriter(filepath, engine='openpyxl')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
Df.to_excel(writer,"Outstanding", index = False, header=True)

有没有办法清除工作表或覆盖整个工作表,而不仅仅是那些有数据的单元格?数据框是动态的,可能是空的,这意味着如果是这种情况,工作表应该是空的。Excel 上有其他工作表,代码的其他部分必须访问。

【问题讨论】:

    标签: python excel pandas jupyter-notebook openpyxl


    【解决方案1】:

    你可以看到how to overwrite excel sheets here。据我所知,您可能只需要添加writer.save(),或者使用默认的writer = pd.ExcelWriter('g.xlsx') 而不是您正在使用的那个。

    如果一切都失败了,您可以在写入之前删除工作表:

    std=book.get_sheet_by_name(<sheet_name>)
    book.remove_sheet(std)
    

    不过,请检查链接。

    【讨论】:

      猜你喜欢
      • 2015-10-03
      • 2018-08-14
      • 2019-08-10
      • 2013-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      相关资源
      最近更新 更多