xlwings:我可以创建一个已经打开的工作簿的实时链接吗?

时间:2015-09-03 12:42:52

标签: python excel xlwings

我正在尝试使用xlwings将Python链接到Excel。取得了很大的成功,但我无法链接到已经打开(并修改过)的excel工作簿。因此,工作簿已在Excel中打开,我想链接到该工作簿并使用该特定工作簿。

使用wb =工作簿(文件名)工作正常,除非我已经在Excel中修改了Excel电子表格。当我发出命令wb = Workbook(filename)时,Excel返回"文件名已经打开。重新打开将导致您所做的任何更改都将被丢弃。你想继续Y / N吗?"

因此,它不是使用Excel中已有的工作簿,而是尝试在Excel中重新打开原始工作簿。我需要使用当前(包含我所有未保存的更改)副本,因为它现在位于Excel中。

所以问题归结为:我如何实时链接到excel中已打开的工作簿?

谢谢, 威廉

2 个答案:

答案 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