技術共有

PDF から表の内容をバッチで抽出する

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

背景1枚

PDF ファイルから表のデータを取得することは、日常のオフィス業務でも簡単に実行できるタスクです。たとえば、会社の年次報告書の表形式のデータを取得したい場合、PDF には簡単に数百ページのデータが含まれる可能性があります。

2つの伝統的な手法

PDF の表から 1 つずつコピーして Excel の表に貼り付けるのは非効率すぎます。

3 オフィスオートメーション

私の方法とPythonを使用してそれを解決する方法を見てみましょう。 pdfplumber を使用して PDF ファイルを読み取り、各ページの表を自動的に抽出し、ループで新しい Excel ファイルに書き込むという考え方は従来の方法と同じですが、どれくらい時間がかかりますか?瞬きしないでください。実行ボタンを押すだけで、すべてのファイルが自動的に生成され、名前が付けられます。それらはすべて正確です。 。

4 コードの実装

  1. ## 导入工具包
  2. import pdfplumber
  3. import pandas as pd
  4. ## 读取 PDF 文件
  5. p = pdfplumber.open("./贵州茅台2019年年报.pdf")
  6. # 选好读取全部页面
  7. for i in range(len(p.pages)):
  8. ## 读取一页中全部表格
  9. tables = p.pages[i].extract_tables()
  10. print(f'第{i+1}页一共有{len(tables)}个表格')
  11. for j in range(len(tables)):
  12. ## 生成表格
  13. df = pd.DataFrame(tables[j])
  14. ## 写入 Excel 文件
  15. df.to_excel(f'./贵州茅台2019年年报_第{i+1}页_第{j+1}张表.xlsx')

実現効果: