用python从excel表中提取超链接URL



如何使用python提取excel工作表中单元格中超链接的URL?我试过公开使用熊猫,但它们不起作用。。。

以下是我迄今为止在openpyxl:中编写的代码


from openpyxl import load_workbook as load
from openpyxl import Workbook
file = 'tableCopy.xlsx'
zipCode = 2110
codeCol = 5
linkCol = 6

result = Workbook()
rws = result.active

wb1 = load(file)
sheets = [wb1.sheetnames[x] for x in range(len(wb1.sheetnames) - 1)]

for sheet in sheets:
ws = wb1[sheet]
for rowNumber in range(1, ws.max_row + 1):
if ws.cell(row=rowNumber, column=codeCol).value == zipCode:
rws.append((cell.value for cell in ws[rowNumber]))
url = ws.cell(column=linkCol, row=rowNumber) # this is what i am using to get the url
text = ws.cell(column=linkCol + 1, row=rowNumber)
rws.cell(row=rowNumber, column=linkCol).value = '=HYPERLINK("' + str(url.value) + '","' + str(text.value) + '")'
result.save(f'code{zipCode}.xlsx')

file是文件名

zipCode是我想用过滤的值

codeCol是具有zipCode 的列

linkCol是具有超链接的列

rws是一个新的工作表(result工作表的一部分(,它将存储过滤后的数据

我从这里的第二个答案中得到了urltext的代码:Pandas read_excel with Hyperlink

我暂时放弃了text,因为它只显示了下一列的文本

这是我打印url变量时得到的一个例子:=IF(COUNTBLANK(B107:D107)>0,"",HYPERLINK(CONCATENATE(Setup!$B$5,SUBSTITUTE(SUBSTITUTE(CONCATENATE(B107,"+",C107,"+",D107,"+",E107)," ","+"),"/","%2F")),"Google Map"))不是我希望的URL,它是谷歌地图的链接。

此处使用openpyxl模块。首先加载工作簿(例如第一张工作表(:

import openpyxl
wb = openpyxl.load_workbook('FILEPATH')
ws = wb['Sheet1']

然后你可以使用细胞的.hyperlink.target。试试看。。除了块,因为若单元格并没有超链接,那个么它就会失败。

最新更新