Excel Hyperlink Extractor 是一款僅在瀏覽器中運行的工具,會讀取本機 .xlsx 活頁簿中已儲存的 http、https 和 mailto 儲存格超連結目標,並以純文字報告的形式回傳,絕不會上傳檔案、絕不會連線任何 URL,也絕不會執行試算表內容。此工具會依照活頁簿的工作表順序逐一處理,只讀取 Excel 在插入連結時(透過「插入超連結」指令、HYPERLINK 公式解析為外部目標時,或透過程式新增連結關聯時)自行附加至儲存格的詮釋資料。它不會解讀儲存格的可見文字,因此若某個儲存格內含字元 https://example.com 但實際上並未附加連結,該儲存格並不會出現在報告中。輸出內容會以非作用中的文字形式呈現在 textarea 內,並可下載為純 .txt 檔,沒有任何豐富預覽、沒有任何可點擊的導覽,也不會對任何列出的網址發出瀏覽器請求。每個保留的 URL 都會先經過瀏覽器的 URL 解析器進行正規化,再去除重複;每個正規化目標的第一次出現會被保留,該目標後續出現的項目則會被標示為重複,而不是再次列出。

how to get excel link
如何將 Excel 連結目標匯出為純文字清單

擷取範圍:僅限已儲存的超連結詮釋資料

此擷取工具僅針對在目前瀏覽器分頁中開啟的單一活頁簿進行處理。檔案會透過瀏覽器本身的檔案讀取器讀取,依工作表與儲存格順序進行遍歷,且絕不會離開此頁面。此工具僅檢查 .xlsx 套件儲存在工作表關聯中的儲存格層級超連結詮釋資料。它不會爬取網路、不會逐一搜尋儲存格中看似 URL 的文字、不會評估公式傳回值以外的儲存連結目標、不會重新整理資料連線、不會執行巨集、不會查看圖片內容,也不會執行腳本。

由於範圍僅限於儲存格的超連結附件本身,某個儲存格內未經插入連結而僅以純文字形式輸入的 URL 字串,刻意不在此工具的處理範圍之內。若您的活頁簿中有一整欄的參考 URL 是他人以純文字形式貼上的,這些項目將不會出現在報告中。文件內部錨點、相對路徑(例如 ../reports/q3.xlsx)、指向本機磁碟的 file:// 連結、data: 裝載,或 javascript: 參照的情況亦同。將這些項目過濾掉是刻意的安全界線:擷取出的報告不應在後續工作流程中,將不受信任的試算表靜悄悄地轉化為瀏覽器的導覽動作。

僅有三類外部目標會被保留:http URL、https URL 和 mailto 地址。其他所有項目都會在沒有警告列的情況下從報告中移除,如此可讓輸出內容聚焦於稽核時最可能需要的連結。

如何以三個步驟取得 Excel 連結目標

此工作流程刻意設計得很短,因為主要的工作都在瀏覽器內部完成。當您手上已有活頁簿並想快速盤點其外部儲存格超連結時,請使用 Excel Hyperlink Extractor。

  1. 選擇一個本機 .xlsx 活頁簿。此檔案必須是傳統的單一磁碟 OOXML ZIP 套件,不得為空,且大小不得超過 20 MB。請將檔案拖曳到選擇器中,或從檔案對話框中選取。舊版 .xls 檔、含巨集的 .xlsm 活頁簿、加密檔案、Zip64 套件,以及多磁碟封存檔,都會在開始遍歷之前以可見的錯誤訊息予以擋下。
  2. 選擇「擷取安全連結」。這會在單一處理過程中同時觸發活頁簿讀取器與工作表遍歷。瀏覽器會依工作表順序解析各工作表的超連結關聯,將接受的目標進行正規化,並於同一個步驟中準備好純文字報告。
  3. 檢視每個目標旁的工作表與儲存格地址。textarea 會依序列出工作表名稱、儲存格地址(例如 B14 或 D2),以及正規化後的 URL 或 mailto 值。可複製文字內容,或將其下載為 .txt 檔,以便在其他本機工具中檢視、交接或進行比較。

解讀純文字報告

每個保留的項目都是一行純文字,依照活頁簿本身定義的順序排列:工作表名稱、儲存格地址,以及正規化後的目標。由於格式為扁平文字區塊,此報告可在任何編輯器中開啟,與先前的盤點結果進行差異比對,或貼到其他工具中,完全無需擔心內嵌連結會自動執行。

重複項目的處理是此報告設計的一部分。當同一個正規化後的 URL 在活頁簿中出現多次時,第一次出現的位置會連同其工作表與儲存格位置一併保留。之後每次出現該完全相同的正規化目標,都會以重複行的形式回報,讓檢閱者能夠看到該目標重複出現的位置,而無需用同一字串讓檔案膨脹。結果就是一份易於瀏覽、同時仍保留每個唯一目標最早實際位置的清單。

正規化作業是由瀏覽器的 URL 解析器執行。會將 scheme 與主機名稱轉為小寫、移除預設通訊埠,並透過解析器將路徑正規化。這表示兩個僅在結尾斜線、預設通訊埠號碼,或 scheme 大小寫上有所不同的儲存格,會合併成一個保留項目,並對應兩行重複記錄。

刻意排除的目標

接受的清單刻意設定得很窄。下表顯示擷取工具在去除重複之前保留與捨棄的內容。

目標形式結果原因
http://example.com/path保留接受的外部 scheme
https://example.com/path保留接受的外部 scheme
mailto:[email protected]保留接受的地址 scheme
../reports/q3.xlsx排除相對路徑,無絕對 scheme
#Sheet1!A1排除活頁簿內部錨點
file:///C:/data/q3.xlsx排除本機檔案 URL
data:text/plain;base64,...排除內嵌的資料 URL
javascript:alert(1)排除帶有腳本的 scheme
含控制字元的格式錯誤值排除解析器拒絕的裝載
長度超過規定上限的目標排除長度保護機制

若目標遭到排除,並不會以警告列的形式出現在報告中。輸出內容就是清理後的盤點結果,而不是診斷日誌。需要完整掌握活頁簿中所有類似 URL 字串的檢閱者,應將此報告視為一份經過篩選的清單,而非儲存格文字的完整普查。

可能導致擷取作業停止的輸入限制

擷取工具在開始進行工作表遍歷之前,會強制套用一組固定的限制。超過其中任何一項限制時,將會停止執行並顯示可見的錯誤,而不是靜悄悄地產生一份不完整的報告。

限制項目上限超過時的效果
檔案大小20 MB顯示可見錯誤,不進行遍歷
ZIP 項目數2,000顯示可見錯誤,不進行遍歷
宣告的展開資料大小50 MB顯示可見錯誤,不進行遍歷
每張工作表的儲存格數100,000在該工作表上顯示可見錯誤
報告中保留的安全連結數1,000報告設有上限;僅保留前 1,000 個
套件類型傳統單一磁碟 .xlsx損壞、加密、Zip64、舊版 .xls、啟用巨集,或多磁碟套件會以可見錯誤予以擋下

若碰到不熟悉的匯出檔案,請先以較小且具代表性的檔案進行測試,以確認該活頁簿符合相關限制。在磁碟上接近 20 MB 的活頁簿,通常也會接近 50 MB 的展開資料上限,因為壓縮過的 XML 在讀取後可能會大幅膨脹。

當可見的 URL 未出現在報告中時

URL 遺漏最常見的原因,是該儲存格只有文字內容,並未附加超連結。Excel 將連結目標儲存為工作表上一個獨立的關聯。某個使用者手動輸入的儲存格,或由傳回值為 URL 字串的公式所產生的儲存格,並不會有這類關聯。由於擷取工具僅讀取關聯資料,因此這類手動輸入的值不在其處理範圍之內。

第二個原因是 scheme 過濾。若某個儲存格含有相對參照(例如 reports/q3.xlsx)或內部錨點(例如 Sheet1!A1),這些目標將會被前述的安全界線所拒絕。第三個原因是去除重複:某個目標若已在報告中較早出現過,將會以重複行的形式回報,而不是新增一筆記錄,這乍看之下可能會像是缺少了一行。

若您預期應該出現的 URL 卻未顯示,請在 Excel Viewer 中直接開啟該活頁簿,以確認該儲存格實際上是否帶有連結,還是僅以文字形式包含 URL。

稽核之後:如何運用這份清單

這份報告是一份盤點清單,而不是一份裁決書。擷取工具並不會檢查所保留的 URL 是否可連線、是否可信、是否仍有效、是否屬於特定對象,或是否可在瀏覽器中安全開啟。這些判斷必須由您在取得清單之後,於可信的環境中自行作出。

典型的工作流程是:將來源活頁簿保存在已知位置,在文字編輯器中開啟報告,逐行檢視。在開啟任何 URL 之前,請利用工作表與儲存格的前置資訊,逐一確認每個連結在活頁簿中的位置。若發現並非預期的目標,請將其周圍的儲存格視為可疑,並對整本活頁簿進行稽核,而非僅著眼於該單一行。

若您只需要匯出單一欄以進行一次性清理,請在稽核完成後,將原始 .xlsx 交給相關的配套工具。擷取工具的目的,是先為您提供一份穩定的已儲存外部目標清單,讓後續每一項決策都能奠基於經過驗證的盤點結果,而非憑空臆測。

若您正在權衡各種方案,如何安全地將 Excel 中的單一工作表匯出為 CSV 中有詳細說明。

若您正在權衡各種方案,在本機將 Excel 轉換為 JSON 以用於所得稅申報 中有詳細說明。