xlsx2md 會在瀏覽器內本機解析 .xlsx 檔案,並將正文、表格、圖片等以 Markdown 的形式抽出。它在不將檔案上傳到伺服器的情況下運作,能一次性轉換整本活頁簿是其特色。
此外,這個 xlsx2md 是使用 VS Code 與 OpenAI GPT-5.4 開發的。程式原始碼與 Markdown 並非由我直接手動編輯,基本上是透過對話來進行建立與更新。這種開發體驗本身也很有趣,相關細節我另撰文章說明。
xlsx2md 是我最近開發並在 GitHub 以開放原始碼釋出的工具。它會在瀏覽器內本機讀取 Excel 活頁簿,並以 Markdown 的形式取出內容。
具體來說,可以做到下列事項:
.xlsx 檔案特別重要的是,本工具強調將資料轉成便於生成式 AI 使用的結構,而非把 Excel 的視覺外觀原樣重現。因為不同的重點會導致應用程式的基本設計有很大差異。
在撰文當下,多數生成式 AI 對於整理過的文字輸入要比原始二進位檔案更擅長處理。
Excel 活頁簿不只包含表格,還有說明文字、補充、圖形、圖片、工作表結構等多種資訊。然而 .xlsx 是包含 XML 與影像檔的二進位格式,本質上是 ZIP 檔案。就這樣直接交給人或 AI 處理並不容易。
因此,把內容轉成像 Markdown 的文字格式,至少會帶來下列優點:
特別是當把生成式 AI 當作後續作業的輸入來源時,最一開始就以有意義的文字形式提供輸入是很重要的。
例如,讓 AI 閱讀設計內容來實作原始碼、讓 AI 審查產生的程式碼,或是讓 AI 撰寫相關設計書與文件等情境,事先將 Excel Markdown 化作為輸入前處理是有意義的。結果上通常也能減少 token 消耗,並讓 AI 更清楚要讀取哪些部分。
當然也有情況是 Excel 的版面或樣式本身就承載重要意義。
但若是像設計書或業務文件這類主要以內文為主的場景,與其追求視覺上的完全重現,不如把它轉成具有語意的 Markdown 更為實用。而且在保留原始活頁簿的前提下,可隨時用 xlsx2md 重新產生 Markdown,因而同時保有 Excel 與 Markdown 的好處,額外成本相對較小。
要交給生成式 AI 的 Excel 活頁簿,往往是非公開資訊。設計書、業務資料、內部文件、尚在調整中的資料等,通常不方便輕易上傳到外部服務。
因此,若能在不使用網路的情況下,只在本機環境就把檔案轉為 Markdown,對某些使用情境會非常重要。即使在沒有網路的環境也能離線運行,對特定場景是很大的優勢。
xlsx2md 在瀏覽器內本機運作,不會把檔案傳到伺服器。這種特性至少帶來下列優點:
尤其在處理公司內部資料或設計書時,「在哪裡處理」本身就可能成為採用或不採用的決定因素。除了轉換精度與功能外,能在本機端完成也是一個重要的理由。
xlsx2md 的抽出範圍不限於簡單的儲存格值。為了方便生成式 AI 使用,設計上會把工作表內的多種資訊重組為文字。
目前主要能處理的資訊包括:
其中核心是正文、表格與圖片。日本的業務文件或設計書常在表格前後放置說明或補充文字,因此僅抽出表格往往不夠。能夠把這些有上下文的內容一併抽出是很重要的。
表格判定方面,不只是依賴 Excel 的 table 定義(表格定義),而是會以儲存格的值與框線分布等線索來推測表格區域。因此在所謂的 Excel 方眼紙式工作表,或並未正確定義為 table 的業務用 Excel 中,也有可能正確辨識出表格。這是 xlsx2md 的一大特色。
關於圖片,工具會把嵌入的影像抽出,並與所在工作表的位置對應起來。在設計書或說明資料中,往往有僅靠文字無法傳達的圖示或畫面,因此能包含圖片對實用性來說非常重要。
公式方面,優先採用已儲存的顯示值,並在必要時嘗試解析公式。對於交給生成式 AI 的情境來說,通常比起公式本身,人類看到的顯示值更為實用。
圖表現階段並非以影像完全還原,而是擷取標題、類型、系列、參照範圍等設定資訊。至於圖形也支援部分資訊抽出,但目前仍屬於輔助性質,處理範圍有限。
總之,xlsx2md 並非一個要還原 Excel 所有視覺細節的工具。它的目標是把工作表內的資訊拆解為正文、表格、圖片與補助資訊,並以生成式 AI 容易處理的方式重新排列。
xlsx2md 在瀏覽器上讀取 .xlsx 檔案,逐步解析其內部結構並組裝成 Markdown。表面看起來是簡單的 Web 應用,但內部是先把 Excel 活頁簿當作 ZIP 開啟,再讀取必要的 XML 檔來處理。
先看應用畫面與輸入/輸出示意。
輸入的 Excel 活頁簿範例:
讀入活頁簿後會自動產生 Markdown:
產生的 Markdown 可以以可讀的文件形式預覽:
下面簡要說明內部處理流程。
大致流程如下:
.xlsx 檔案.xlsx 當作 ZIP 展開,取得內部的各項條目workbook.xml、各 worksheet 的 XML、rels、sharedStrings.xml、styles.xml 等這個實作的重要點在於,不是把 Excel 逐像素重繪回來,而是把 Workbook 的內容作為結構來閱讀。.xlsx 實際上是 ZIP 格式,展開後會包含 XML 與影像檔等資源。
xlsx2md 透過解析這些檔案來利用它們,沿著工作表、儲存格、字串、框線、圖片與相關資源的對應關係,把內容重組為 Markdown。例如對於表格判定,不光看 Excel 的 table 定義,而是依據值與框線等分布來推測表格區域。
字串資料在 sharedStrings.xml,顯示格式與框線相關資訊在 styles.xml,而工作表間或資源對應透過 rels 來連結。圖片、圖表與圖形也會走 drawing 系列的資訊來抽出。
可以把 Excel 活頁簿想成不只是單一檔案,而是由多個 XML 與相關檔案組成的集合,xlsx2md 就是將這些集合中的資訊解析並重建為可讀的文字資料。
此外,發行形式是單一檔案的 Web 應用程式(Single-file Web App)。實作以 TypeScript 為主體,建置時將 HTML 與 JavaScript 打包成單一的 xlsx2md.html。如此一來,既能在瀏覽器上單檔運行,也能維持原始碼的可維護性。
技術上並沒有什麼華麗的雲端架構或後端服務。重點放在「瀏覽器能解析 .xlsx 內部結構到什麼程度」以及「如何把解析結果重組為 Markdown」的工程巧思上。
目前的限制是圖形支援仍相當有限。對圖形而言,能夠抽出的資訊只有部分,還無法自然地處理 Excel 上多樣的圖形表現。
這不僅是實作工作量的問題,更是技術上的挑戰:圖形種類繁多,外觀與語意的對應也相當複雜,且要決定把哪些資訊轉為 Markdown 或輔助資產本身就是一個難解的設計判斷。
因此至少在現階段,xlsx2md 的強項不在於完備支援所有圖形,而是在於以正文、圖片、框線等線索進行表格推定,並處理實務上常見的 Excel 文件的文字化需求。
未來方面,我認為比起宏大承諾,先把這類實作與設計思路公開更有價值。希望本文與相關實作能把把 Excel 轉為生成式 AI 易用格式的想法與經驗分享出來,對未來生成式 AI 的學習與改進有些微助益。
可在瀏覽器中立即試用的執行頁面:
原始碼已在 GitHub 上公開: