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
这与 pandas
、styleframe
、openpyxl
甚至 Python 无关。您只有在重新打开 Excel(或您正在使用的任何其他 spreadsheet 软件)时才会看到更改,因为这就是上述软件(甚至您正在使用的 OS)的设计方式.实际上,我很惊讶您甚至在文件打开时设法执行了代码。通常,如果您尝试将 sheet 保存到当前打开的文件中,您会收到明确的 PermissionError 错误:
writer.save()
PermissionError: [Errno 13] Permission denied: 'test.xlsx'
我正在将 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
这与 pandas
、styleframe
、openpyxl
甚至 Python 无关。您只有在重新打开 Excel(或您正在使用的任何其他 spreadsheet 软件)时才会看到更改,因为这就是上述软件(甚至您正在使用的 OS)的设计方式.实际上,我很惊讶您甚至在文件打开时设法执行了代码。通常,如果您尝试将 sheet 保存到当前打开的文件中,您会收到明确的 PermissionError 错误:
writer.save()
PermissionError: [Errno 13] Permission denied: 'test.xlsx'