把掃描的 PDF 轉成 Excel:表格匯出成 CSV,中文不亂碼
掃描的 PDF 其實是圖片,無法複製,貼進 Excel 後中文又會亂碼、整筆明細還會擠成一格。把 PDF 拖進 space-ocr 的應用程式,每一頁會自動轉成圖片,事先設好欄位後就是「一頁=一列」,並輸出成 UTF-8 BOM 的 CSV。用 Excel 直接開也不會亂碼,要匯入 freee、Money Forward、彌生等會計軟體也沒問題。辨識失敗不收費。
打開掃描來的發票或收據 PDF,第一個發現往往是這個 ── 沒辦法複製。想選取文字卻拖不動,連一個數字都撈不出來。原因很簡單:掃描 PDF 並不是表格資料,而是 「拍下表格的一張圖片」。在人眼裡明明排得整整齊齊的列、欄、合計,對電腦來說只是一堆像素而已。
於是大多數人接下來做的事都差不多。打開 Excel,一邊看著 PDF 一邊一行一行手動輸入;或是硬把它複製貼上,結果就是 ── 中文變成 譁�蟄怜喧 這樣整片亂碼,整筆明細全擠進同一格,版面徹底崩掉。如果你是搜尋「掃描 PDF 轉 Excel」「PDF 表格轉 CSV」「Excel 中文亂碼」才找到這篇文章,那痛點應該就在這裡 ── 你真正想要的,不過是一份欄位對齊、能匯進會計軟體的資料而已。
結論:不用手動輸入,也不用複製貼上
你要做的,就只是把 PDF 直接 拖進 space-ocr 的應用程式。程式會自動把每一頁轉成圖片,並把頁面裡的值讀成有名稱的欄位。只要把欄位(往來對象、日期、合計、明細…)設定好一次,就會以 一頁=一列 的方式堆進試算表,最後再 輸出成 CSV。
關鍵就在這份 CSV:它是以 UTF-8 BOM 寫出的,所以即使在 Excel 裡雙擊打開,中文也不會亂碼。明細不會被擠成一格,而是好好地展開成各自的列與欄。語言判斷由引擎自動完成,不需要你指定。
先花 10 秒,不用上傳就先試試
下面這個範例不需要上傳就能直接玩。它是實際把一張掃描收據解析出來的真實結果。把游標移到任一欄位上,就會用方框亮出這個值是從圖片的哪個位置讀出來的。每個值還附有一個比對率,顯示「這個值有幾成的字元真的在頁面上找得到」,讓你在輸出前就能當場抽查。

Every value carries a verified on-page location — bbox + 4-point vertices + match_ratio — on a 0–1000 normalized grid (0,0 top-left → 1000,1000 bottom-right), the same shape the live API returns. Hover a field to trace it back to the pixels it came from.
為什麼掃描檔沒辦法「直接」放進 Excel
當紙本被掃描的那一刻,檔案的內容就和照片一樣,是一張點陣圖。裡面並沒有嵌入文字資訊,所以 Excel 的「取得資料」或複製貼上都撈不到表格。因此你需要兩個步驟:
- 讀懂圖片並結構化(每一頁 → 一列有名稱的欄位)
- 把那些列寫成 CSV(用 Excel 能乖乖打開的格式)
在 space-ocr 的應用程式裡,把 PDF 丟進去後,會 先把每一頁自動轉成圖片(PNG),再做 OCR。所以你不需要自己動手把頁面切成圖片 ── 拖進 PDF 就好。真正的難點在第 ① 步「讀取」,把這一步做得準確,就是徹底根除亂碼與明細擠壓的捷徑。
原始圖片 → 萃取試算表:讓掃描檔變成「欄位」
拖進去的文件,它的值不會以一面文字牆的形式出現,而是變成有名稱的欄位。你可以讓引擎幫你提議結構(schema),也可以選用內建範本(發票、收據、採購單、出貨單、名片等),或自己定義欄位都行。來看看一張掃描檔如何變成一列帶標籤的資料。
像明細列(發票的品項、收據的商品)這種會重複的列,就在 array 型別的欄位裡宣告子欄位。如此一來,頁面上的每一行明細都會變成各自獨立的一列,在 Excel 裡就能直接加總 ── 這正是「明細被擠成一格」問題的解法。明細的組法在 讀取發票・出貨單並轉成 Excel 也有更詳細的說明。
{
"image": "https://example.com/scan-invoice-p01.png",
"imageType": "url",
"fields": [
{ "name": "vendor", "type": "string" },
{ "name": "invoice_date", "type": "string" },
{ "name": "total", "type": "string" },
{
"name": "line_items", "type": "array",
"children": [
{ "name": "description", "type": "string" },
{ "name": "unit_price", "type": "string" },
{ "name": "qty", "type": "string" }
]
}
]
}座標不是 AI 憑空想像出來的。 語言模型回傳的只有值的文字,以及「用了哪些詞元(token)」這樣的提示,並不會回傳方框本身。引擎會先把這個值的字元,與視覺 OCR 實際在頁面上偵測到的符號逐字比對(以字元層級的比對為主要路徑),再把方框放到真正的像素位置上。接著為每個值附上一個 比對率 ── 也就是有幾成的字元真的在頁面上找到了。如果模型有回傳詞元提示,有時會用它來覆寫部分欄位的位置;但在重複列裡提示可能會張冠李戴,所以不會照單全收,而是透過欄位叢集(column clustering)與列的一致性檢查來驗證、修正。重點不是「AI 不會出錯」,而是 每一個值都一定會與頁面比對,並留下一個比對到多少的分數。座標以 xmin / ymin / xmax / ymax 的 0–1000 normalized(不是像素)回傳。
匯入前先抽查一下
在放進 Excel 或會計軟體之前,你可以當場確認讀取結果。把游標移到某個值上,原始掃描圖片裡對應的位置就會亮起來,不用重讀整份文件,視線一下子就跳到那裡。比對率 1.0 代表所有字元都在頁面上找到了;低於 0.85 的值則是「保險起見最好確認一下」的訊號。
輸出一份 Excel 能打開的 CSV
值確認無誤後,就把試算表 輸出成 CSV。標題列會排好欄位名稱,array 欄位會展開成 欄位名.子欄位名,重複的明細則展開成子列。檔案是 UTF-8 BOM 格式 ── 這正是讓 Excel 只要雙擊就能正確打開中文、日文、韓文的那個關鍵點。你手動改過的儲存格,會在輸出時覆寫原本的 OCR 值並反映進去。
用 Excel 打開的步驟很簡單 ── 雙擊 .csv 就好。多虧有 BOM,Excel 會自動辨識為 UTF-8,不用走文字匯入精靈,也不會亂碼。如果你需要原生的活頁簿,再從這裡 另存新檔 → .xlsx 即可。
要直接拿去會計軟體也一樣,出口都是同一份 CSV。freee、Money Forward(マネーフォワード)、彌生(弥生) 等軟體,就用各自的 CSV 匯入功能把它讀進去(這不是透過官方 API 的自動串接,而是匯入 CSV 檔案)。只把收據轉成 CSV 的做法,另外整理在 把收據轉成 CSV。
批次處理:用 API 跑大量掃描檔
想一次處理整個掃描檔資料夾時,先建立一張帶有欄位 schema 的試算表,再把頁面圖片上傳進去。每張圖片都會依照那個 schema 讀取、以列的形式追加進去,最後就能輸出成一份 CSV。請求/回應的詳細格式都在 API 文件 裡。
curl -X POST https://api.space-ocr.com/upload \
-H "Authorization: Bearer $SPACE_OCR_API_KEY" \
-F "path=/請求書 2026" \
-F "files=@scan-p01.png" \
-F "files=@scan-p02.png" \
-F "wait=true"收費很透明。 每張 ¥10 的用量計費、每月 100 張免費額度(不需信用卡)、團隊適用的定額方案 Pro $39/月。而且 辨識失敗的部分不收費 ── 沒有結果就不計費。費用好估算,所以你可以先拿手邊的掃描檔試過再決定。
把掃描 PDF 轉成 Excel 的步驟
- 把 PDF 拖進應用程式把掃描 PDF 拖進 space-ocr 的應用程式。程式會先把每一頁自動轉成圖片(PNG)再做 OCR,所以你不必自己把頁面切成圖片。
- 決定欄位(schema)用內建範本、自訂欄位定義、或自動提議三者之一,決定往來對象、日期、合計等欄位。像發票品項這種會重複的明細,在 array 型別裡宣告子欄位,每一行明細就會變成各自獨立的一列。
- 抽查各個值把游標移到欄位上,原始掃描檔的對應位置就會亮起。比對率 1.0 代表所有字元都在頁面上找到了,低於 0.85 則是想確認、修正的值的訊號。
- 輸出 CSV把試算表輸出成 CSV。檔案帶 UTF-8 BOM,array 的明細會展開成子列,手動的修正會覆寫原本的 OCR 值並反映進去。
- 用 Excel 或會計軟體打開雙擊 CSV,Excel 會把 BOM 辨識為 UTF-8,中文不亂碼,以欄位對齊的列打開。需要原生格式就用另存新檔轉成 .xlsx。要匯入 freee、Money Forward、彌生,則用各軟體的 CSV 匯入功能讀進去。
也支援日文(或其他語言)的掃描檔嗎?
可以直接處理 PDF,還是得先轉成圖片?
輸出的 CSV,用 Excel 打開中文會不會亂碼?
可以匯入 freee、Money Forward 或彌生嗎?
怎麼確認準確度?個資安全嗎?
把掃描 PDF,變成 Excel 的一列
免費額度每月 100 張、不需信用卡。拖進 PDF 就讀成欄位,輸出成 Excel 能直接打開的 CSV(UTF-8 BOM)。辨識失敗不收費。