教學 · Excel → 表格

Excel 轉 HTML:公式和格式

一張試算表裝的東西比它顯示的多:數字背後的公式、蓋在上面的數字格式、橫跨幾格的合併。HTML 一樣都沒有。

所以問題不是會不會掉東西 —— 是掉的是哪些,以及裡面有沒有你正需要的那個。

去轉換器

公式變成它的結果

一個寫著 =SUM(B2:B9) 的儲存格出來是 4211。這幾乎總是你在網頁裡要的 —— 頁面上的公式只是一串字元,而一串看起來像公式的字元比那個數字更糟。

能這樣是因為 Excel 每次儲存都會把算好的值快取在公式旁邊。轉換器讀的是這個快取值,所以它不需要自帶一個公式引擎。

Excel 裡的儲存格
B10:  =SUM(B2:B9)
HTML
<td>4211</td>

唯一會轉成空的情況

如果這個工作簿是程式產生的 —— Python 匯出、報表工作、某個試算表函式庫 —— 而且從沒在 Excel 裡打開過,那就沒有快取值,因為沒人寫過。這些儲存格轉出來是空的。

辦法是拿 Excel 或 LibreOffice 打開一次再存一次。那會把所有公式算一遍並把值寫進去。某張工作表的公式儲存格讀出來是空的時候轉換器會提示你,不用自己猜。

公式的錯誤值也是轉成空,而不是 #DIV/0! 或 #REF!。某一欄的查找函式壞了,出來就是一欄空白 —— 所以某欄莫名其妙全空的時候,值得回去看看原始檔。

數字格式留不住

這是最值得事先知道的一處意外。數字格式是 Excel 蓋在值上面的一層遮罩,底下那個值是光的。

所以 $1,234.50 轉出來是 1234.5 —— 貨幣符號、千分位、固定小數位全沒了。顯示 12.50% 的儲存格轉出來是 0.125,因為那才是一直躺在那兒的那個數。

如果輸出裡格式是要緊的,在試算表裡加一欄,用 TEXT() 公式拼出帶格式的字串,然後用那一欄。這樣它就是字串了,而字串是一模一樣轉過來的。

日期是例外:它們靠數字格式認出來,轉出來是 2026-03-14,有時間的話後面接上時間。刻意按 UTC 讀回 —— 想當然的那種寫法會讓格林威治以西的人手上每個日期都退一天。

合併儲存格會拆開

跨 A1:C1 合併的一個標題,出來是一個帶文字的儲存格加旁邊兩個空儲存格。Excel 把值留在左上那格,其餘的確實是空的;沒有合併資訊的話,能讀到的就是這些。

HTML 用 colspan 和 rowspan 是能表達合併的,所以事後改一行就行。或者先在 Excel 裡取消合併 —— 很多時候那些合併本來也只是為了把標題置中。

工作表,和體積上限

兩條上限。單個工作簿 10 MB —— 比別的格式那個 25 MB 低,因為 .xlsx 是個 zip,在分頁裡解開它耗的記憶體遠超它的檔案體積。還有你勾選的全部內容合起來十萬格,所以少選幾張工作表能讓一個大工作簿通過。

加密的工作簿會直接拒掉而不是讀一半,舊的二進位 .xls 也一樣。那些先另存為 .xlsx。

  1. 01預設轉第一張工作表。其餘的按名稱列出來,勾你要的。
  2. 02勾好幾張,每張出來是自己的一個 <table>,上面一個 <h2> 寫著工作表名稱。只勾一張,名稱放進表格的 <caption> 裡。
  3. 03末尾空列修掉之後整張表是空的,它會照實說明,而不是產出一個空表格。

把工作簿拖進來,勾好工作表,把表格複製走。所有東西都在你的瀏覽器裡讀 —— 一個財務模型一步都不出這台機器。

Excel → 表格