OpenPYXL中超链接的奇怪行为

2022-04-07 00:00:00 python excel 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工作表!(蓝色格式和下划线如预期在第1栏中)

当我没有删除第一列时,一切都按预期进行,所以当我删除第一列时,超链接不会移动,这只是一个奇怪的怪现象。

有人知道为什么会发生这种情况吗?

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


解决方案

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

此处链接:https://foss.heptapod.net/openpyxl/openpyxl/-/issues/1429

相关文章