기술나눔

PDF에서 테이블 내용을 일괄 추출

2024-07-12

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

배경 1개

PDF 파일에서 테이블의 데이터를 얻는 것도 일상적인 사무에서 쉽게 참여할 수 있는 작업입니다. 예를 들어 회사의 연례 보고서에서 표 형식의 데이터를 얻으려는 경우 PDF에는 수백 페이지의 데이터가 쉽게 포함될 수 있습니다.

2가지 전통적인 방법

PDF 표에서 하나씩 복사해서 엑셀 표에 붙여넣는 것은 너무 비효율적입니다.

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')

실현 효과: