Tips & Tricks

如何將 PDF 表格轉換為單獨的 CSV 文件

包含十幾個資料表(每個資料表都有一個單獨的報告部分)的 PDF 提出了轉換挑戰。將整個 PDF 轉換為單一 CSV 會產生一個混亂的電子表格,其中第三部分的表標題出現在第二部分資料的中間。 PDF 到 Excel一次轉換整個文件的工具不區分錶格。將每個表提取到自己的 CSV 文件中需要更具選擇性的方法,將每個表視為較大文件中的獨立資料來源。

目標是為每個表產生一個 CSV 文件,每個 CSV 包含 PDF 中來源表中的正確列標題和資料行。輸出文件的數量與文件中不同表的數量相符。這種方法可讓每個資料集保持乾淨並準備好匯入到分析工具、資料庫或單獨的電子表格標籤中,而無需手動後處理來分離混合的表格資料。

WukongPDF 的擷取 PDF 資料工具可識別 PDF 中的表格結構並以結構化格式匯出。對於具有多個獨立表的文檔,下面描述的提取工作流程會產生乾淨的每個表 CSV 輸出。

How to Convert PDF Tables to Separate CSV Files

PDF 表格提取的工作原理

表格提取引擎分析每個 PDF 頁面上文字字元的空間位置。水平靠近的字符形成單字。以規則的垂直間隔排列在水平行中的單字形成表格行。列之間的垂直間隙定義了列邊界。引擎將字元分組到儲存格中,將儲存格分組到行中,再將行分組到表格結構中,然後將表格匯出為分隔文字。提取的準確性取決於原始 PDF 表格的格式是否清晰。具有可見網格線、一致列寬且沒有合併單元格的表格以近乎完美的精度提取。

合併儲存格(其中一個儲存格跨越多列或多行)會混淆空間分析,因為引擎無法確定合併儲存格屬於哪一列。具有按行交替的背景陰影的表可能會導致引擎將陰影邊界誤解為列邊界。如果表格中的內容在儲存格內換行為多行,則可能會導致引擎將每個換行行視為單獨的行。在採用提取方法之前,請目視檢查 PDF 表中的這些功能並相應地設定期望值。

WukongPDF

嘗試 PDF 轉 Excel

無需安裝。直接在您的瀏覽器中工作。

立即開始 →

方法 1:使用 Adobe Acrobat Pro 匯出單一表格

Acrobat Pro 可以將 PDF 匯出到 Excel,然後您可以將工作簿拆分為單獨的 CSV 檔案。在 Acrobat Pro 中開啟 PDF,前往“工具”,然後前往“匯出 PDF”。選擇電子表格作為輸出格式,然後選擇 Microsoft Excel 工作簿。點擊導出。 Acrobat 處理整個文件並產生 XLSX 檔案。在 Excel 中開啟 XLSX。每個 PDF 頁面的內容顯示在單獨的工作表上或連續的資料範圍中,具體取決於文件佈局。

確定每個表在 Excel 輸出中的開始和結束位置。選擇第一個表的資料範圍(包括其標題行),然後將其複製到新的 Excel 工作簿。將該工作簿儲存為具有描述性名稱的 CSV 文件,例如 Sales_Q1_2025.csv。對每個後續表重複此操作。對於最多包含五個表格的文檔,這種手動方法可以可靠地工作。對於具有數十個表格的文檔,手動複製並保存工作流程變得乏味,下面的自動化方法之一更實用。

方法 2:有表格檢測的線上工具

一些線上 PDF 到 CSV 轉換器包含表格檢測功能,可識別文件中的各個表格。這些工具掃描 PDF,突出顯示偵測到的表格區域,並提供將每個偵測到的表格匯出為單獨的 CSV 或 XLSX 工作簿中單獨的工作表。 Tabula 是一款開源工具,既可以作為 Web 應用程式也可以作為本機桌面應用程式使用,專門用於此工作流程。上傳 PDF,在要提取的每個表格周圍繪製選擇框,然後按一下「匯出」。 Tabula 為每個選定的表格區域產生一個 CSV。

在實踐中,在線提取的品質在很大程度上取決於PDF的內部結構。基於文字的 PDF(表格內容儲存為實際文字字元)可以可靠地提取。掃描的 PDF 中的表格是文字圖像而不是文字本身,因此在提取之前需要進行 OCR。如果 PDF 源自掃描儀,則先透過 OCR 引擎執行 PDF,然後從可搜尋的 OCR 輸出中擷取表格。 OCR 步驟會引入一些提取錯誤,特別是可能被誤識別為外觀相似字元的數字。

方法 3:使用 Python 和 Tabula 自動擷取

對於重複提取任務或包含多個表的文檔,使用 tabula-py 庫的 Python 腳本可自動執行工作流程。此腳本開啟 PDF,偵測每個頁面上的表格區域,將每個表格提取到 pandas DataFrame,並將每個 DataFrame 儲存為單獨的 CSV 檔案。基本提取腳本大約需要 25 行程式碼。

tabula-py 庫接受表格偵測策略的參數,例如具有可見網格線的表的網格模式和列由空格分隔的表的流模式。對於格式良好且帶有邊框的表格,點陣模式更加準確。流模式允許無邊界表,但如果空白間隙不一致,則列可能會錯位。對於具有混合表格樣式的文檔,運行提取兩次,每種模式運行一次,然後比較輸出以確定哪種模式為每個表格產生更清晰的資料。

方法最適合關鍵限制
Adobe Acrobat Pro 匯出乾淨的表格,一兩個 PDF與合併單元格的鬥爭
線上 PDF 轉 CSV 工具快速轉換,無需安裝可能會錯誤處理多頁表
Python + 熊貓 + 板批次、複雜表格需要腳本知識

處理跨多個頁面的表格

從第 3 頁延續到第 4 頁的表格提出了一個特殊的挑戰。提取引擎看到兩個單獨的表,每頁一個,每個表在第 3 頁上有自己的標題行,並且可能在第 4 頁上有重複的標題。提取後,手動或使用腳本合併兩個 CSV 文件,方法是將第二個文件中的資料行附加到第一個文件的資料行下方,從第二個文件中刪除重複的標題行。

一些提取工具包括跨頁或連接表選項,嘗試自動合併多頁表。當表結構跨頁一致且每個分頁符號發生在行邊界時,該選項會起作用。當分頁符號將一行分成兩頁時,例如從第 3 頁底部開始到第 4 頁頂部結束的帶有換行文字的高行,自動合併會在第一個 CSV 的末尾生成一個部分行,並在第二個 CSV 的開頭生成另一個部分行。對於這些邊緣情況,需要手動檢查和校正合併點。

將每個 PDF 表提取到自己的 CSV 檔案中會產生乾淨的、可供分析的數據,這些數據可以直接匯入到任何電子表格或資料庫工具中。您選擇的方法取決於您需要提取的表數量以及執行此任務的頻率。對於偶爾在少數表格上使用的情況,Acrobat Pro 的匯出到 Excel 工作流程以及手動 CSV 分割可以處理該工作。為了從標準化文件中重複批量提取,Python 和 Tabula 方法可以處理數百個 PDF,並獲得一致的結果。

驗證擷取的 CSV 資料的準確性

將每個表提取到 CSV 後,在將資料匯入分析管道之前執行快速驗證。在電子表格應用程式中開啟每個 CSV,並將行數與原始 PDF 表中的可見行數進行比較。計數應在一兩行內匹配,考慮到可能跨越分頁符的標題行。根據 PDF 抽查 CSV 中的數值:隨機選取五個包含數字的儲存格,並確認這些值完全符合。

請特別注意原始 PDF 中包含合併儲存格的欄位。提取引擎通常會在合併儲存格跨越的所有欄位中複製合併儲存格的值,或將某些列留空。如果您的分析取決於保留的合併單元結構,請在後處理期間套用合併邏輯,而不是期望提取引擎正確處理它。讀取 CSV 並根據預定義映射將列合併回其原始結構的簡短 Python 腳本比依賴提取引擎的合併檢測產生更可靠的結果。

何時使用 API 提取服務

對於大規模 PDF 表格提取,基於 API 的服務可提供比複雜佈局的本機工具更高的準確性。 Amazon Textract、Google Document AI 和 Microsoft Form Recognizer 使用經過數百萬種表格格式訓練的機器學習模型,比基於規則的引擎更可靠地處理合併單元格、多行單元格內容和無邊框表格。成本是每頁的,對於偶爾的高價值提取來說是經濟的,但對於每天批量處理數千頁來說可能會很昂貴。

API 擷取擷取基本工具錯過的表格上下文。即使標題跨越多個列,列標題也與資料單元格相關聯。分層的父子標頭被辨識。輸出是結構化 JSON 而不是平面 CSV,保留表語意以供下游處理。對於準確性影響財務或法律結果的關鍵業務數據,每頁 API 成本只是手動更正提取錯誤的成本的一小部分。

WukongPDF

嘗試 PDF 轉 Excel

無需安裝。直接在您的瀏覽器中工作。

立即開始 →