目的:实测三种方式打开带有自动更新公式的excel的区别
有excel已打开 | 无excel打开状态 | |
---|---|---|
直接xw.Book() | 显示方式打开,wb.close()运行完code后会关闭该exce的appl,之前的excel文件不受影响 | 隐藏式打开,wb.close()运行完code后,该excel的app仍然存在,以备下次再打开excel不用新开app了 |
app=xw.App(visible=T),wb=app.books.open() | 显示打开,,wb.close()运行完code后,该excel的app仍然存在,原excel的app独立存在 | 隐式打开,会在下次打开时报错 |
pd.read_excel() | 显示打开,借用原excel的app,运行完code后,原excel的app仍然存在 | 隐式打开,运行完code后,该excel的app仍然存在,以备下次再打开excel不用新开app了 |
而pd.read_excel()如果显示打开excel,自动公式会显示最新计算结果,但是没有保存,所以调取的仍然是旧数据。
以xw方式打开只要wb.save()了,再阅读数据就是更新后的了。
结论:最好先手工打开一个excel,然后直接使用xw.Book(),主要是写法简便,并且如果有自动公式的化,可以wb.save()后调取,