我正在尝试使用 Python 3.4 中的 openpyxl 来识别包含外部工作簿引用的所有单元格。但我失败了。我的第一次尝试包括:
def find_external_value(cell):
# identifies an external link in a given cell
if '.xls' in cell.value:
has_external_reference = True
return has_external_value
Run Code Online (Sandbox Code Playgroud)
但是,当我将具有外部值的单元格值打印到控制台时,它会产生以下结果:
=[1]Sheet1!$B$4
=[2]Sheet1!$B$4
Run Code Online (Sandbox Code Playgroud)
因此,openpyxl 显然不会以我想象的方式解析包含外部值的公式,并且由于方括号用于表格公式,因此尝试以这种方式获取外部链接是没有意义的。
我挖得更深一些,在 openpyxl.workbook.names.external 模块(参考)中找到了 detect_external_links 函数。我不知道是否真的可以调用这个函数来做我想做的事。
从控制台结果看来,openpyxl 似乎知道存在引用,并且似乎将它们包含在一系列列表中。但是可以访问此列表吗?或者检测是否存在这样的列表?
无论哪种方式 - 我只需要弄清楚单元格是否包含指向外部工作簿的链接。