使用Python在Excel中插入、修改、提取和刪除超鏈接
引言
超鏈接是Excel中的常用功能,通過點(diǎn)擊超鏈接可以快速跳轉(zhuǎn)到外部網(wǎng)站、本地文件或工作表中的特定單元格,有效提升數(shù)據(jù)訪問的效率和用戶體驗(yàn)。在日常工作中,我們可能需要在Excel表格中插入超鏈接以便快速訪問,根據(jù)需求修改或刪除已有超鏈接,或提取超鏈接的目標(biāo)地址以進(jìn)行進(jìn)一步處理。這篇博客將詳細(xì)介紹如何使用Python在Excel中插入、修改、提取和刪除超鏈接。
- Python在Excel中插入超鏈接
- Python修改Excel中的超鏈接
- Python提取Excel中的超鏈接
- Python刪除Excel中的超鏈接
使用工具
要在Python中實(shí)現(xiàn)在Excel中插入、修改、提取和刪除超鏈接,首先需要安裝Excel文件處理庫。本文所使用的庫是Spire.XLS for Python,它可以通過以下pip命令進(jìn)行安裝:
pip install Spire.XLS
Python在Excel中插入超鏈接
Spire.XLS for Python 提供了 Worksheet.HyperLinks.Add() 方法,用于給工作表中的單元格添加文本超鏈接。添加后,可以給超鏈接設(shè)置不同的目標(biāo)位置,如外部網(wǎng)頁、本地文件、工作表中的其他單元格、電子郵件地址等。此外,該庫還支持為工作表中的圖片添加超鏈接,使圖片變?yōu)榭牲c(diǎn)擊的元素,從而進(jìn)一步提升 Excel 的交互性。
以下是給Excel工作表添加文本超鏈接和圖片超鏈接的具體步驟:
- 創(chuàng)建Workbook類的對(duì)象,并使用Workbook.Worksheets[index]屬性獲取特定工作表。
- 使用Worksheet.Range[]屬性獲取特定單元格。
- 使用Worksheet.HyperLinks.Add() 方法給單元格添加文本超鏈接,并設(shè)置文本超鏈接的類型、顯示文本和目標(biāo)地址。
- 使用Worksheet.Pictures.Add()方法向工作表的特定單元格插入圖片。
- 使用XlsBitmapShape.SetHyperLink()方法為圖片設(shè)置超鏈接。
- 使用Workbook.SaveToFile()方法保存結(jié)果文檔。
實(shí)現(xiàn)代碼:
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建Workbook對(duì)象
workbook = Workbook()
# 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]
# 添加指向外部網(wǎng)頁的文本超鏈接
cell1 = sheet.Range["B2"]
webLink = sheet.HyperLinks.Add(cell1)
webLink.Type = HyperLinkType.Url
webLink.TextToDisplay = "Baidu.com"
webLink.Address = "https://baidu.com/"
# 添加指向電子郵件地址的文本超鏈接
cell2 = sheet.Range["B4"]
mailLink = sheet.HyperLinks.Add(cell2)
mailLink.Type = HyperLinkType.Url
mailLink.TextToDisplay = "聯(lián)系我們"
mailLink.Address = "mailto:support@mycompany.com"
# 添加指向外部文件的文本超鏈接
cell3 = sheet.Range["B6"]
fileLink = sheet.HyperLinks.Add(cell3)
fileLink.Type = HyperLinkType.File
fileLink.TextToDisplay = "打開 報(bào)表.xlsx"
fileLink.Address = "C:\\Users\\Administrator\\Desktop\\報(bào)表.xlsx"
# 添加指向同一工作簿中其他單元格的文本超鏈接
cell4 = sheet.Range["B8"]
linkToSheet = sheet.HyperLinks.Add(cell4)
linkToSheet.Type = HyperLinkType.Workbook
linkToSheet.TextToDisplay = "跳轉(zhuǎn)到Sheet2!A1"
linkToSheet.Address = "Sheet2!A1"
# 在工作表中插入圖片
image = sheet.Pictures.Add(10, 2, "baidu.png")
image.LeftColumnOffset = 25
image.TopRowOffset = 25
# 為圖片添加超鏈接
image.SetHyperLink("https://baidu.com/", True)
# 設(shè)置列寬和行高
sheet.SetColumnWidth(2, 17)
sheet.SetRowHeight(10, image.Height)
# 保存結(jié)果文件
workbook.SaveToFile("添加超鏈接.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
Python修改Excel中的超鏈接
當(dāng)超鏈接的目標(biāo)地址失效或發(fā)生變更時(shí),需要及時(shí)更新以確保數(shù)據(jù)的準(zhǔn)確性。
以下是修改Excel工作表中特定的超鏈接的核心步驟:
- 使用 Worksheet.HyperLinks[index] 屬性獲取特定的超鏈接。
- 通過HyperLink.TextToDisplay 和HyperLink.Address 屬性來更新超鏈接的顯示文本和目標(biāo)地址。
實(shí)現(xiàn)代碼:
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建Workbook對(duì)象
workbook = Workbook()
# 加載Excel文檔
workbook.LoadFromFile("添加超鏈接.xlsx")
# 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]
# 獲取工作表中的第一個(gè)超鏈接
link = sheet.HyperLinks[0]
# 修改超鏈接的顯示文本
link.TextToDisplay = "CSDN"
# 修改超鏈接的目標(biāo)地址
link.Address = "https://www.csdn.net/"
# 保存結(jié)果文檔
workbook.SaveToFile("修改超鏈接.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
Python提取Excel中的超鏈接
由于Excel工作表可能包含文本超鏈接和圖片超鏈接,因此需要分別對(duì)它們進(jìn)行提取。
以下是從Excel工作表中提取文本超鏈接和圖片超鏈接的核心步驟:
- 使用Worksheet.HyperLinks屬性獲取該工作表中文本超鏈接的集合。
- 循環(huán)遍歷集合,使用HyperLink.Address屬性獲取每個(gè)文本超鏈接的目標(biāo)地址,并將其添加到列表。
- 使用Worksheet.Pictures屬性獲取該工作表中圖片的集合。
- 循環(huán)遍歷集合,使用XlsBitmapShape.GetHyperLink()方法獲取圖片的超鏈接。
- 使用HyperLink.Address屬性獲取每個(gè)圖片超鏈接的目標(biāo)地址,并將其添加到列表。
- 將列表內(nèi)的地址寫入文本文件。
實(shí)現(xiàn)代碼:
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建Workbook對(duì)象
workbook = Workbook()
# 加載Excel文檔
workbook.LoadFromFile("添加超鏈接.xlsx")
# 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]
# 獲取工作表中所有文本超鏈接的集合
links = sheet.HyperLinks
# 創(chuàng)建列表來存儲(chǔ)提取的超鏈接信息
list = []
# 遍歷提取的文本超鏈接
for link in links:
# 獲取每個(gè)超鏈接的地址
address = link.Address
# 將地址添加到列表
list.append(address)
# 遍歷工作表中的所有圖片
imageCollection = sheet.Pictures
for image in imageCollection:
# 獲取圖片超鏈接的地址
link = image.GetHyperLink()
address = link.Address
list.append(address)
# 將提取的超鏈接地址寫入文本文件
with open("超鏈接.txt", "w", encoding = "utf-8") as file:
for item in list:
file.write(item + "\n")
workbook.Dispose()
Python刪除Excel中的超鏈接
當(dāng)不再需要某些超鏈接時(shí),可以將其刪除。Spire.XLS for Python提供了Worksheet.Range[].HyperLinks.RemoveAt()方法,支持刪除工作表特定單元格中的超鏈接。此外,也支持刪除整個(gè)工作表中的所有超鏈接。
以下是從Excel工作表中刪除特定單元格的超鏈接或所有超鏈接的實(shí)現(xiàn)代碼:
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建Workbook對(duì)象
workbook = Workbook()
# 加載Excel文檔
workbook.LoadFromFile("添加超鏈接.xlsx")
# 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]
# # 刪除特定單元格中的文本超鏈接
# sheet.Range["B2"].HyperLinks.RemoveAt(0)
# 獲取文本超鏈接的集合
links = sheet.HyperLinks
# 從后往前遍歷集合,依次刪除集合中的文本超鏈接
for i in range(links.Count - 1, -1, -1):
links.RemoveAt(i)
# 保存結(jié)果文檔
workbook.SaveToFile("刪除超鏈接.xlsx", ExcelVersion.Version2016)
workbook.Dispose()以上就是使用Python在Excel中插入、修改、提取和刪除超鏈接的全部?jī)?nèi)容。感謝閱讀!
到此這篇關(guān)于使用Python在Excel中插入、修改、提取和刪除超鏈接的文章就介紹到這了,更多相關(guān)Python Excel超鏈接基本操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解分布式系統(tǒng)中如何用python實(shí)現(xiàn)Paxos
提到分布式算法,就不得不提 Paxos 算法,在過去幾十年里,它基本上是分布式共識(shí)的代 名詞,因?yàn)楫?dāng)前最常用的一批共識(shí)算法都是基于它改進(jìn)的。比如,F(xiàn)ast Paxos 算法、 Cheap Paxos 算法、Raft 算法、ZAB 協(xié)議等等。2021-05-05
Python爬蟲進(jìn)階之爬取某視頻并下載的實(shí)現(xiàn)
這篇文章主要介紹了Python爬蟲進(jìn)階之爬取某視頻并下載的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Pycharm 字體大小調(diào)整設(shè)置的方法實(shí)現(xiàn)
這篇文章主要介紹了Pycharm 字體大小調(diào)整的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
python3+openCV 獲取圖片中文本區(qū)域的最小外接矩形實(shí)例
這篇文章主要介紹了python3+openCV 獲取圖片中文本區(qū)域的最小外接矩形實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python?OpenCV形態(tài)學(xué)運(yùn)算示例詳解
這篇文章主要為大家介紹了OpenCV中的幾個(gè)形態(tài)學(xué)運(yùn)算,例如:腐蝕&膨脹、開&閉運(yùn)算、梯度運(yùn)算、頂帽運(yùn)算黑帽運(yùn)算,感興趣的可以了解一下2022-04-04
Python使用pyodbc訪問數(shù)據(jù)庫操作方法詳解
這篇文章主要介紹了Python使用pyodbc訪問數(shù)據(jù)庫操作方法,結(jié)合實(shí)例形式詳細(xì)分析了Python基于pyodbc針對(duì)數(shù)據(jù)庫的連接、查詢、插入、修改、刪除等操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-07-07
opencv檢測(cè)動(dòng)態(tài)物體的實(shí)現(xiàn)
本文主要介紹了opencv檢測(cè)動(dòng)態(tài)物體的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07

