2

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

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

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

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

谢谢,威廉

4

2 回答 2

0

当我事先不知道在运行 Python 代码段时是否会打开 Excel 工作簿时,我只是写了一些东西:

        try:
            wb = Workbook('[FILENAME]')
        except:
            wb = Workbook('[COMPLETE PATH + FILENAME]') 

(我用xlwings 0.5.0

于 2015-12-06T11:35:12.647 回答
0

你做的一切都是正确的,这意味着你看到的行为是一个微妙的错误,只有在某些情况下才会出现。在 v0.3.1 中进行了第一次改进(请参阅此问题)。但是,我有信心它最终会在下一个版本(v0.4.0)中得到解决。简而言之,问题可能是由不受信任的文档位置、unicode 错误或您使用多个实例引起的。

更新:xlwings v0.4.0 刚刚发布,应该最终可靠地修复了这个错误。

于 2015-09-03T15:00:33.410 回答