openpyxl 中超链接的奇怪行为

Weird behaviour of hyperlinks in openpyxl

我在 Excel 中有两列数据,我正在尝试使用 openpyxl 来格式化它们。

第一列是 URL。我想将第二列设置为 URL 的超链接,然后删除第一列。我还将此列的格式设置为看起来像超链接 - 带下划线和蓝色。我正在使用以下代码。 (以下代码只有一行数据,这样更容易理解)

import openpyxl
from openpyxl import Workbook
from openpyxl.styles import Font

#Set Up Workbook
wb = Workbook()
ws = wb.active
ws['A1'] = r'C:\Users'
ws['B1'] = 'Click To Open Users'
ws['C1'] = 'qwertyuiop'

#Format Cells
ws.cell(row=1,column=2).hyperlink = ws.cell(row=1,column=1).value
ws.cell(row=1,column=2).font = Font(color="0000EE", underline='single')

#Delete First column (The other columns should shift to the left)
ws.delete_cols(1)  


wb.save(r"C:\Test.xlsx")

然而,此代码的结果是一个 excel sheet,在 2nd 列中有一个超链接! (蓝色格式和下划线符合预期在第一列)

当我不删除第一列时,一切都按预期工作,所以这只是一个奇怪的怪癖,当我删除第一列时,超链接不会移动。

有人知道为什么会这样吗?

我使用的是 2.6.1 版,然后升级到 3.0.3 版,同样的事情发生了。

开发人员不认为这是一个问题,因为“openpyxl 不是 Excel 的替代品,因此当您进行添加或删除行或列等更改时,它不会跟踪内容。您必须在您自己的代码中执行此操作。我们移动了单元格对象,它们包含格式,但超链接是引用单元格的不同对象。我们通常也不会更新公式或图表。"

Link 这里:https://foss.heptapod.net/openpyxl/openpyxl/-/issues/1429