我正在尝试使用xlwings将Python链接到Excel。取得了很大的成功,但我无法链接到已经打开(并修改过)的excel工作簿。因此,工作簿已在Excel中打开,我想链接到该工作簿并使用该特定工作簿。
使用wb =工作簿(文件名)工作正常,除非我已经在Excel中修改了Excel电子表格。当我发出命令wb = Workbook(filename)时,Excel返回"文件名已经打开。重新打开将导致您所做的任何更改都将被丢弃。你想继续Y / N吗?"
因此,它不是使用Excel中已有的工作簿,而是尝试在Excel中重新打开原始工作簿。我需要使用当前(包含我所有未保存的更改)副本,因为它现在位于Excel中。
所以问题归结为:我如何实时链接到excel中已打开的工作簿?
谢谢, 威廉
答案 0 :(得分:0)
您正确地做了一切,这意味着您所看到的行为是一个微妙的错误,只有在某些情况下才能实现。在v0.3.1中进行了第一次改进(见this question)。但是,我相信它最终会在下一个版本(v0.4.0)中得到解决。简而言之,问题可能是由不受信任的文档位置,unicode错误或您使用多个实例引起的。
<强>更新强>: xlwings v0.4.0刚刚发布,应该可以最终可靠地修复这个bug。
答案 1 :(得分:0)
如果我事先不知道在运行Python代码段时是否会打开Excel工作簿,我只需写一些东西:
try:
wb = Workbook('[FILENAME]')
except:
wb = Workbook('[COMPLETE PATH + FILENAME]')
(我使用xlwings 0.5.0
)