PDF 轉 Excel 線上
把 PDF 的表格擷取成可編輯的 Excel 活頁簿。偵測與解析完全在你的瀏覽器進行。
親自驗證:開啟 DevTools → Network 分頁 → 拖入一個檔案。你會看到完全沒有任何上傳發生。
三步驟。零上傳。
拖入 PDF
載入瀏覽器記憶體。
偵測表格
我們找出表格邊界,並在前端解析儲存格。
下載 XLSX
用 Excel、Numbers 或 Google Sheets 開啟。
當表格被關在 PDF 裡,需要重新變回表格
這類情境通常跟在別人的格式選擇之後出現。銀行寄來 PDF 對帳單,你想把交易倒進試算表並把某個分類加總。供應商的價目表是 PDF,你想跟上一季比對。主管機關只把資料表以 PDF 公布,你需要它變成可以排序、過濾的儲存格。爬蟲抓回來的報表是 PDF,你希望每一列就是一列。在所有這些情況下數字都在;只是被鎖在版面裡,不再表現得像數字。
這裡的工作是把列與欄拿回來:把 PDF 給出去,換回一份 .xlsx,每一頁是自己的工作表,每一列是一列,每一欄是一欄。從那裡你可以排序、過濾、加總、做樞紐 — 試算表本來就是為了這些事而存在。
為什麼這是猜測 — 而且還算準
PDF 不儲存表格。內部一頁是一條扁平的文字片流,每片帶著畫布上的 x/y 位置。沒有任何地方寫著「這是一列」或「欄從這裡開始」 — 那些結構只在你閱讀時才存在於你眼裡。要把它們找回來,就必須從文字實際所在的位置反推網格。
工具分幾步來做。首先按 y 把文字片分組成列:兩個片在垂直方向相距大約半個行高之內,就屬於同一列。接著在同一列內,水平上靠近的片融合為一個儲存格(一般的字元間距),較大的空隙成為儲存格邊界(欄位之間的走道)。最後,工具看整頁中儲存格從哪裡開始,找出主導的 x 位置,將其視為欄中心 — 每個儲存格被指派到最近的欄。試算表想要的長方形網格因此產生。
演算法擅長的
- 典型的金融表 — 對帳單、發票、價目表、費用報告。每筆紀錄一列、欄之間有清楚走道、數字向右對齊:正是啟發式調校的場景,通常乾淨通過。
- 單列紀錄。當每筆紀錄都裝得進一列時,列偵測可靠。
- 佔滿整頁寬的表。欄偵測在欄距離夠開且全頁一致時表現最好。
- 右對齊與左對齊。兩者都吃 — 重點是欄與欄之間有可辨識的走道。
困難之處
- 會換行的儲存格。內容跨到第二行的儲存格 — 長產品描述、多行地址 — 通常被切成兩列。在試算表裡輕修就能處理(或乾脆走 pdf-to-txt,手工重建表,如果輕修不划算)。
- 合併儲存格。視覺上跨兩欄的標題只會出現在其中一欄 — 最近的那欄。合併會以 A 欄有值、B 欄空白的形式呈現。
- 並排兩個表。欄偵測器同時看到兩個,可能把它們壓成一個寬表。事先把 PDF 切一半通常有幫助。
- 同一頁裡有表和內文。表上方的段落會貢獻自己的「文字列」 — 幾列實際並非列,刪除很容易。
- 跨多頁的表。每一頁都會變成獨立工作表。要把它們縫成連續的表,請在抽取後把資料區塊複製貼上。
- 掃描的 PDF。跟所有文字抽取一樣的注意事項:頁面若是影像(掃描的對帳單、拍照的收據),就沒有東西可讀。先到別的工具做 OCR。
最後拿到什麼
一個 .xlsx。每一頁 PDF 變成自己的工作表,名稱是 Page 1、Page 2 等。可以在 Excel、Numbers、Google 試算表、LibreOffice — 任一個 — 開啟。儲存格是純值;沒有格式、公式、樣式。重點是:數字現在又是數字了,欄位現在又是欄位了。
若你要 CSV 而非 xlsx,從你的試算表 App 把工作表另存為 CSV 即可 — 一個選單之遙。
實務筆記
- 若 PDF 有密碼,先用 unlock-pdf。加密的 PDF 無法為了抽取儲存格而被打開。
- 對於非常寬的表,抽取前把來源 PDF 旋轉為橫向有幫助 — 欄少了,走道更乾淨。旋轉在 edit-pdf 裡進行。
- 若你只要文字、不要結構,pdf-to-txt 比較快,結果也比較好重新排列。
- 反向操作 — 把 Excel 工作表放進 PDF — 是 excel-to-pdf。
你的檔案會怎樣
抽取在你的瀏覽器中執行。打開 DevTools,在執行時觀察 Network 面板 — 不會看到任何攜帶檔案內容的對外請求。PDF 留在磁碟;.xlsx 是放在它旁邊的新下載。
常見問題
我的 PDF 會被上傳嗎?
不會。偵測與解析全程在瀏覽器中進行,檔案從不離開你的裝置。
掃描 PDF 能用嗎(OCR)?
掃描表格需要 OCR 才能變成可編輯儲存格。有文字(可選取)的 PDF 可直接擷取。
表格偵測的準確度如何?
有格線且間距清楚的表格可乾淨擷取;合併儲存格與無邊框表格可能需要人工檢查。
可以指定頁面嗎?
可以。指定頁面範圍,只從你需要的頁面擷取表格。