【发布时间】:2021-02-01 03:16:25
【问题描述】:
如何使用 python 提取 Excel 工作表单元格中超链接的 URL? 我曾尝试过公开使用 Pandas,但它们没有用......
下面是我目前在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 是邮政编码的列
linkCol 是带有超链接的列
rws 是一个新工作表(result 工作簿的一部分),它将存储过滤后的数据
我从这里的第二个答案中获得了 url 和 text 的代码: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,它是指向谷歌地图的链接。
【问题讨论】:
-
请提供minimal reproducible example,以及当前和预期的输出。请参阅How to Ask、help center。
标签: python python-3.x excel excel-formula hyperlink