我构建了一个iOS应用程序,它接受用户的输入,然后将他们的数据作为.csv文件上传到dropbox。
现在,我想构建一个跨平台桌面应用程序,它使用openpyxl和Python dropbox api来监听这些.csv上传,然后将这些.csv文件中的数据写入各种.xlsx工作簿。我对此没有任何问题,除了我的客户希望能够在excel工作簿更改时在他们的桌面上观看。
每当我使用openpyxl进行作业时,例如......
wb = load_workbook(“sample.xlsx”)#load一个现有的.xlsx文件
ws = wb.active #get活动工作表
ws ['A1'] = 12 #assign data to cell A1
...然后运行此脚本将成功更改文件,但我必须关闭然后打开文件才能看到更改,而不是在发生变化时观察更改。
所以,我的问题是,我如何看待openpyxl对excel工作簿的更改发生,并且是否有针对此的跨平台解决方案?感谢接受问题的替代方法!
我对此的研究已经持续了几个小时,而我提出的最好的是AppleScript和pywin32的混合体,但这可能真正快速实现丑陋/错误!
我非常感谢你的帮助!
答案 0 :(得分:2)
我认为你不能轻易做到这一点。 Excel文件本身就是zip存档,这使得监控变得非常困难,因为您无法修改zip文件:您始终创建新的存档。这正是Excel使用文件锁定的原因。
听起来我觉得你需要一些Excel本身可以监控和集成的外部数据源。您可能希望查看xlwings以进行就地编辑。或者,也可以使用openpyxl创建外部数据源。它将与外部文件一起使用。