簡體   English   中英

使用python從excel表中提取超鏈接URL

[英]Extract hyperlink URL from excel sheet with python

如何使用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工作簿的一部分),它將存儲過濾后的數據

我從這里的第二個答案中獲得了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"))不是我希望的網址這是谷歌地圖的鏈接。

這里使用openpyxl模塊。 首先加載工作簿(例如第一張工作表):

import openpyxl

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

然后你可以使用單元格的.hyperlink.target 把它放在 try..except 塊中,因為如果單元格沒有超鏈接,那么它就會失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM