データが表として含まれるPDF(財務レポート、価格リスト、アンケート結果、請求書の明細セクションなど)があり、そのデータをExcelで扱う必要があるとします。セルを選択してコピーし、スプレッドシートに貼り付けようとします。しかし、その結果得られるのは、ぐちゃぐちゃに混ざったテキストの1列、あらぬ場所で結合されたセル、あるいは何も表示されないかのどれかです。これはバグではありません。PDFの仕組みそのものなのです。
PDFの表の抽出が難しい理由
PDFは表を表として保存していません。テキストを、ページ上の特定のX/Y座標に配置された一連のグリフ(文字)として保存しています。PDF内の表とは、たまたま視覚的に整列し、描画された線で区切られているテキストの行にすぎません。「これがセルである」「これは3列目に属する」「この行はここで終わる」ことを表すデータ構造は存在しないのです。
PDFからコピーペーストすると、リーダーは視覚的な位置から構造を推測しようとします。その結果、列の境界を誤って判定したり、セルを結合したり、数値が行をまたいで分断されたりすることがよくあります。表が広いほど、結果は乱雑になります。
方法1:直接コピーペースト(まず試す価値あり)
ネイティブPDF(スキャナーではなくソフトウェアで作成されたもの)の場合、まず以下を試してください:
- PDFを次のソフトで開きます:Adobe ReaderまたはChrome.
- クリックしてドラッグし、表の範囲を選択します。
- コピーします(Ctrl+C)。
- Excelのセルに貼り付けてください (形式を選択して貼り付け -> テキストまたは まずテキストエディタに貼り付けて、実際に何が取得されたかを確認してください。
- 使用「区切り位置」(Excelの「データ」タブ)を使って、貼り付けたコンテンツをタブ、スペース、または一貫した区切り文字で分割します。
これは、整形されたシンプルな2〜3列の表にはかなり有効です。ただし、結合セル、脚注、複数行のセル内容を含む複雑な表ではうまく機能しません。
オプション2:専門のPDFからExcelへの変換ツール
変換ツールは、PDFの視覚的な構造(セルの境界線、列の配置、フォントのプロパティなど)を分析し、それをスプレッドシートデータとして再構築しようとします。出力はExcelで直接開けるXLSXファイルです。
Pagivoは専用のPDFからExcelへの変換機能を開発中ですコンバーター このためです。起動すると、ワークフローは次のようになります:PDFをアップロードし、XLSXをダウンロードし、 誤検出された境界がないか結果を確認します。クリーンな表形式のネイティブPDFの場合、コンバーターは大部分の作業を処理します。
期待されること:変換は単純な表では正確ですが、複雑なレイアウト(結合されたヘッダー行、斜めのテキスト、セル内に画像を含む表、 複雑に装飾された罫線)では精度が低下します。出力内の数値の合計を必ず元のPDFと照合して確認してください - 複雑な表では四捨五入 や列揃えのエラーが発生することがあります。
オプション3:Google Sheetsインポート(小さな表には手軽)
- 开くGoogle Sheets新しいスプレッドシートを作成します。
- 次に移動しますファイル -> インポートPDFをアップロードします。
- GoogleはPDFから表の解析を試み、それをシートデータとして取り込みます。
結果にはばらつきがあり、コピーペーストと似た精度ですが、取り込みの手順では手動選択よりも表構造をうまく検出できる場合があります。専用のコンバーターがない場合の簡単な表には試す価値があります。
オプション4:スキャンされたPDF(別の問題、別の解決策)
PDFがスキャン画像,つまりページを撮影した写真である場合、抽出すべきテキストデータがまったくありません。コピーペーストではページ全体が1枚の画像として選択されます。標準的なPDFからExcelへのコンバーターでは、役に立つものは何も生成されません。
スキャンされた表の場合、表構造を特別に理解できるOCRが必要です。選択肢:
- Googleドキュメント- PDFをドライブにアップロードし、ドキュメントで開きます。GoogleのOCRがテキストを抽出しますが、表構造は維持されないことが多くなります。
- Adobe Acrobat Pro- 表の認識を備えたOCRが内蔵されています。 複雑な表に対して高品質な結果が得られますが、有料サブスクリプションが必要です。
- 専用OCRツール- ABBYY FineReaderなどは、表を含む文書構造の認識に 特化して設計されています。たまに使う程度には過剰ですが、複雑なスキャン表には最も正確な選択肢です。
抽出後:Excelでのデータクリーニング
どの方法でも、出力のクリーニングに数分かけることを想定してください:
- 複数ページの表が各ページで列見出しを繰り返すことで生じる、空行と重複したヘッダーを削除する。
- 数値の形式を修正する - PDFが異なるロケールの数値形式を使用していた場合、カンマとピリオドが入れ替わっていることがあります。
- 合計が一致することを確認する - ソースのPDFから計算値を1つか2つ手動で照合してください。