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