gpt4 book ai didi

python - 一些超链接无法使用 Openpyxl 打开

转载 作者:行者123 更新时间:2023-12-04 22:21:17 24 4
gpt4 key购买 nike

我有几百个包含数据和超链接的文件,当我意识到 Pandas 没有读取任何超链接时,我正试图上传并附加到单个 DataFrame 中。
然后我尝试使用 Openpyxl 读取输入 Excel 文件中的超链接,并在 Excel 中写入一个新列,其中包含希望 Pandas 可以读入我的数据框的超链接文本。
但是,我在测试 openpyxl 代码时遇到了问题。它能够读取和写入某些超链接,但不能读取和写入其他超链接。
我的示例文件有三行,如下所示:
Input data
我的实际数据具有超链接,就像我在测试数据集中为“Google”提供的那样。
Hyperlink style 1
我的文本数据中的另外两个超链接,我通过右键单击单元格并粘贴链接来插入。
Second type of hyperlink input
此处的示例测试文件:Text.xlsx
这是我编写的用于读取超链接并将其粘贴到新列中的代码。它适用于前两行(印度和中国),但不适用于第三行(谷歌)。很不幸,因为我所有的实际数据都是这种类型。有人可以帮我弄清楚吗?

import openpyxl 

wb = openpyxl.load_workbook('test.xlsx')
ws = wb.active

column_indices = [1]
max_col = ws.max_column

ws.cell(row=1,column = max_col+1).value = "Hyperlink Text"
for row in range(2,ws.max_row+1):
for col in column_indices:
print(ws.cell(row, column=1).hyperlink.target)
ws.cell(column=max_col+1,row=row).value = ws.cell(row, column=1).hyperlink.target


wb.save('test.xlsx')
enter image description here

最佳答案

您使用 HYPERLINK 功能的单元格(如 google.com)将不是超链接类型。您将需要使用类似的函数处理具有 HyperLink 函数的单元格。
值如下所示,

>>> ws.cell(2,1).value
'China'
>>> ws.cell(3,1).value
'India'
>>> ws.cell(4,1).value
'=HYPERLINK("www.google.com","google")'
处理 HYPERLINK 的建议代码:
val = ws.cell(row,column).value
if val.find("=HYPERLINK") >= 0 :
hyplink = ws.cell(4,1).value # Or use re module for more robust check
注意:似乎不需要第二个 for 循环来遍历列,因为您总是使用 column=1。

关于python - 一些超链接无法使用 Openpyxl 打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63139026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com