我正在使用
openpyxl
处理 Excel 电子表格中的信息。电子表格位于Microsoft共享点中,当添加一些超链接到其中时,如果超链接位于同一个共享点中,当我单击“保存”按钮时,它将自动转换为相对URL。
如果我将此电子表格复制到其他电脑位置,相关超链接根本无法工作。 Microsoft 在帮助>设置工作簿中链接的基址中提供了解决此问题的方法。但是对于
openpyxl
,似乎没有提供任何方法来检索这个base url address
。
我不想在Python脚本中硬编码它,因为我需要处理不同的Excel表。 python脚本有没有办法将相对URL转换为绝对URL?或者,excel本身有没有办法避免以相对形式存储URL?
获取URL的代码片段如下
wb = load_workbook(file, data_only=True)
sheet = wb[sheet_name]
# Extract the hyperlinks
hyperlinks = {}
for row in sheet.iter_rows():
for cell in row:
if cell.hyperlink:
hyperlinks[cell.coordinate] = cell.hyperlink.target # here the link might be relative
结果设置基本超链接后,Excel 停止将 URL 转换为相对链接。所以这个问题可以结束了。