openpyxl 讀寫超鏈接


1、讀取超鏈接:

strold = cell.hyperlink.target

2、寫入超鏈接:

cell.value='=HYPERLINK("{}","{}")'.format('link','name')

3、批量替換超鏈接:

有時excel會自動更新excel中的超鏈接,有時禁用自動更新后還是會變,常試了很多辦法都沒有解決,用下面的代碼可以批量替換過來。

from openpyxl import load_workbook wb1 = load_workbook('fillename.xlsx') st1 = wb1['Sheetname'] sm1 = st1['L5':'L8'] url = r'E:\work\**\***' urlold1 = r'file:///C:\Users\25070\AppData\Roaming\Microsoft\Excel' urlold2 = r'file:///C:\Users\25070\AppData\Roaming\Microsoft\AppData\Roaming\Microsoft\Excel'

for index,item in enumerate(sm1): print(index) for cell in item: if cell.value is not None: strold = cell.hyperlink.target if urlold2 in strold: strtemp = '' name = cell.value strtemp = strold.replace(urlold2,url) cell.value='=HYPERLINK("{}","{}")'.format(strtemp,name) print(name+':'+strtemp) else: strtemp='' name = cell.value strtemp = strold.replace(urlold1,url) cell.value='=HYPERLINK("{}","{}")'.format(strtemp,name) print(name + ':' + strtemp) wb1.save('工程項目信息匯總表1.xlsx')

不過有個問題是:打開新的文件,cell的值是替換過來了:

 

 

 可是點擊后還是會跳轉到原來的鏈接去。。。

右擊 編輯鏈接后,地址還是原來的地址。。。

 

 

 暫時只能 手動框選修改過的單元格,右擊取消超鏈接后,可以正確跳轉了,只是沒有格式,只有原始文本。

據說可以用

cell.style = "Hyperlink"
來設置格式為藍色帶下划線,暫時沒有試驗。

 

 

 

 

 

 

 

可是cell


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM