要取得儲存在 Excel 活頁簿中每個超連結背後的網址,最快的方式是把 .xlsx 檔案載入 Excel Hyperlink Extractor,選擇「Extract safe links」,再下載列出每個保留目標,連同其工作表名稱與儲存格位址的純文字報告。這個工具讀取的是已經儲存在 .xlsx 封裝內的超連結中繼資料,而不是掃描每個儲存格中可見的文字,因此它只會顯示真正附加在工作表儲存格上的連結。相對路徑、活頁簿內部錨點、file 網址、JavaScript 網址、data 網址,以及格式錯誤的數值,都會被刻意拒絕,留下一份乾淨的 http、https 與 mailto 目標清單,讓你不必打開其中任何一個就能檢視。因為活頁簿一直留在目前的瀏覽器分頁中,所以沒有任何內容會被上傳,也不會向任何目標頁面發出請求,擷取過程中也不會執行任何試算表公式或巨集。這份報告會以純文字文字區域的形式算繪出來,並以 .txt 檔案下載,這代表輸出結果是不可互動的文字——不是可點擊的豐富預覽——適合用於比對差異、稽核,或交接給另一個本機檢視工具。

一個 Excel 儲存格超連結實際上儲存了什麼
一個 Excel .xlsx 封裝其實是一個內含 XML 部件的 ZIP 容器。當一個儲存格帶有一個可點擊的網頁連結時,這個連結通常會被儲存成一條工作表關係,帶有 TargetMode="External" 與一個裝著網址的 Target 屬性。相對地,看得見的儲存格內容,可以是純文字、公式結果,或一個好記的名稱——它完全不需要與網址一致。這正是為什麼兩個顯示文字相同的儲存格,可能指向不同的位置,也是為什麼一個以純文字顯示 https://example.com、卻沒有附加超連結的儲存格,就工具處理的角度而言,其實並不算是一個超連結。
HYPERLINK 函式則是另一條路徑。=HYPERLINK("https://example.com","Example") 會把它的網址儲存在一段公式運算式內,並算繪出一個可點擊的儲存格,但公式文字並不等同於一條已儲存的儲存格關係。任何依賴擷取實際目標的動作,處理的都是已儲存的關係中繼資料,而不是公式字串。網頁預覽縮圖、網頁查詢連線,以及嵌入的網頁內容,是額外的儲存機制,位於逐儲存格超連結清單之外,也不屬於這個擷取工具所執行的稽核範圍。
為什麼取出 Excel 超連結比看起來更難
稽核一份活頁簿的外部連結,聽起來應該很單純,但有幾項結構上的事實會造成阻礙。第一,看得見的儲存格文字與已儲存的目標可能對不上,因此用肉眼掃描會高估真正超連結的數量。第二,同一個正規化後的網址,可能在多張工作表中重複出現許多次,這讓原始的清單很難讀。第三,一份活頁簿可能包含非網頁目標,例如 file:// 路徑、活頁簿內部錨點、data: 網址,或 JavaScript 協定;在瀏覽器中點開其中任何一種,都是已知的安全隱患,稽核工具在設計上就應該拒絕它們。
最乾淨的解法,是打造一個只讀取已儲存關係、把保留下來的內容正規化、對已經印出的內容去重,並把其他所有內容一律視為範圍之外並拒絕的工具。這正是Excel Hyperlink Extractor扮演的角色:一個小型的稽核介面,僅限於本機活頁簿,最後產生一份純文字報告。
在本機活頁簿上使用 Excel Hyperlink Extractor
擷取本身是一個完全在瀏覽器分頁中執行的三步驟流程:
- 選擇一份大小不超過 20 MB 的本機 .xlsx 活頁簿,並把它載入擷取工具。這個檔案是從你的機器上讀取的;它不會被上傳、鏡像,或傳送到伺服器。
- 選擇Extract safe links,以檢查已儲存的外部儲存格超連結目標。讀取器會開啟這個封裝,驗證它是一個經典的 OOXML ZIP,並依工作表與儲存格順序,逐一走訪工作表超連結紀錄。
- 檢視每個保留目標旁邊的工作表名稱與儲存格位址,接著在你想要一份副本用於交接、比對或封存時,下載這份純文字報告。
沒有任何東西需要安裝,沒有擴充功能需要授權,也沒有任何試算表內容需要執行。瀏覽器在整個走訪過程中,不會擷取任何目標頁面,不會執行任何巨集,不會計算任何公式,不會重新整理任何外部資料連線,不會檢視任何圖片,也不會執行任何腳本。活頁簿本身絕不會被修改,因此擷取後磁碟上的檔案,與擷取前的檔案在位元層級完全相同。
解讀純文字報告(工作表、儲存格、網址)
輸出結果的每一行都經過結構化處理,讓每個保留目標的位置一目了然。三個欄位一起出現:超連結所在的工作表名稱、A1 標記法的儲存格位址,以及經瀏覽器網址解析器處理過的正規化網址。每個正規化網址第一次出現時會逐字保留;同一個目標之後再次出現時,會被回報為重複項目,而不是再印一次,這讓一份有數千列的報告能維持可讀性,同時仍能標示出每一處發現重複目標的位置。
| 欄位 | 意義 |
|---|---|
| Worksheet | 附加這條超連結關係的工作表名稱。 |
| Cell | 帶有這條超連結的儲存格,其 A1 樣式的位址(例如 B14)。 |
| URL | 經瀏覽器解析後的正規化 http、https 或 mailto 目標。 |
如果一個目標出現在超過一張工作表上,依走訪順序最早出現的那一行,會被視為標準行。之後出現的每一次,都會標示重複項目,這樣既能保留唯一網址的計數,也不會遺漏重複出現的位置。因為這份報告是以純文字文字區域算繪出來的,下載結果是一個沒有豐富預覽的 .txt 檔案——每一行都是不可互動的文字,必須在另一個工具中開啟才能導覽。
本機擷取工具的限制與安全邊界
這個工具刻意設計得很精簡。以下輸入規則會在任何工作表走訪開始之前先套用,因此一份超出限制的活頁簿會在一開始就被拒絕,而不是產生一份殘缺不全的清單:
| 邊界 | 數值 |
|---|---|
| 檔案格式 | 經典的單一磁碟 OOXML ZIP,.xlsx 副檔名 |
| 最大檔案大小 | 20 MB |
| 最大 ZIP 項目數 | 2,000 |
| 最大宣告展開資料量 | 50 MB |
| 每張工作表最大儲存格數 | 100,000 個具位址的儲存格 |
| 報告中最多的安全連結數 | 1,000 |
任何超出這些邊界的情況,都會以明顯的錯誤訊息停止,而不是靜默略過。瀏覽器不會假裝一份超出限制的活頁簿的連結清單是完整的。
在網址這一側,這個擷取工具只會保留 http、https 與 mailto 目標。相對路徑、活頁簿內部錨點、file:// 網址、data: 網址、JavaScript 網址、格式錯誤的數值、含有控制字元的內容,以及超過所述長度上限的目標,都會被拒絕。這正是安全邊界所在:一份擷取出來的報告,不應該把一個不受信任的試算表變成一次瀏覽器導覽動作。工作表走訪開始之前,會套用與活頁簿讀取器相同的檔案限制,而被接受的數值,會在去重之前先經過瀏覽器網址解析器正規化。
擷取工具會在什麼情況下拒絕一份活頁簿
有幾種常見的活頁簿型態,落在這個工具的處理範圍之外。損毀的封裝、加密的活頁簿、Zip64 封存檔、舊版 .xls 檔案、啟用巨集的 .xlsm 檔案、多磁碟封存檔,以及過大的輸入,全部都會以明顯的錯誤訊息停止,而不是產生部分結果。如果你從第三方收到這樣的檔案,請把這次拒絕當成一個訊號,先在沙盒檢視器中檢查這個封裝,再重新嘗試。
這個擷取工具也刻意忽略幾種表面上看起來像超連結、實際上卻不是儲存格超連結中繼資料的內容:Word 文件關係、文件內部錨點、產生出看起來像網址字串的公式、沒有加上 mailto: 超連結而直接輸入的電子郵件地址、純文字網址、隱藏的活頁簿連線,以及嵌入的網頁內容。這些都不屬於這個工具設計要執行的稽核範圍,也都不會出現在報告中。
要做到可靠的檢視,請保留原始活頁簿、檢查報告中的工作表與儲存格前綴,並另外自行判斷任何保留下來的網址,是否應該在受信任的環境中開啟。這個擷取工具絕不保證某個保留下來的位址是可連上的、可信任的、還在運作的、屬於某個特定人士,或開啟起來是安全的;它只回報活頁簿本身已經聲稱的內容。在稽核一份不熟悉的匯出檔案時,請先用一份較小的代表性檔案,確認封裝結構之後,再執行完整的稽核。
如果你正在權衡選項,Excel Merge Cells Keyboard Shortcut by Platform對此有詳細說明。
如果你正在權衡選項,How to Convert Excel Data to CSV in Your Browser對此有詳細說明。