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