Excel 必须重新打开工作簿才能看到来自 DataFrame / StyleFrame 的更新

Excel Workbook must be reopened to see updates from DataFrame / StyleFrame

我正在将 StyleFrame 写入新的 Excel sheet,但在重新打开工作簿之前我看不到更改。怎样才能第一时间看到更新?我也尝试使用 DataFrame,但结果相同。

writer = StyleFrame.ExcelWriter(cls.wb_path)
writer.book = cls.wb
sf.to_excel(writer, sheet_name="Extra fields", header=False, index=False)
writer.save()

非常感谢!

根据pandas docs,您需要在创建ExcelWrite对象时提供mode='a'

目前无法通过 StyleFrame.ExcelWriter 快捷方式,但您可以使用 pandas.ExcelWriter:

import pandas as pd

from styleframe import StyleFrame, Styler

sf = StyleFrame({'a': [1, 2, 3]}, styler_obj=Styler(bg_color='yellow'))
writer = pd.ExcelWriter('test.xlsx', mode='a')
sf.to_excel(writer, sheet_name="Extra fields")
writer.save()

test.xlsx 在运行 上面的代码之前:

test.xlsx 在 运行 上面的代码之后:

关于

I cannot see the changes until I reopen the Workbook

这与 pandasstyleframeopenpyxl 甚至 Python 无关。您只有在重新打开 Excel(或您正在使用的任何其他 spreadsheet 软件)时才会看到更改,因为这就是上述软件(甚至您正在使用的 OS)的设计方式.实际上,我很惊讶您甚至在文件打开时设法执行了代码。通常,如果您尝试将 sheet 保存到当前打开的文件中,您会收到明确的 PermissionError 错误:

writer.save()
PermissionError: [Errno 13] Permission denied: 'test.xlsx'