Compartilhamento de tecnologia

Extraia o conteúdo da tabela do PDF em lotes

2024-07-12

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

1. Fundo

A obtenção de dados em tabelas a partir de arquivos PDF também é uma tarefa facilmente envolvida no trabalho diário de escritório. Por exemplo, se quisermos obter os dados tabulares do relatório anual de uma empresa, o PDF pode facilmente conter centenas de páginas de dados.

2 métodos tradicionais

Copiar um por um da tabela PDF e depois colá-lo na tabela do Excel é muito ineficiente.

3 Automação de escritório

Vamos dar uma olhada no meu método e como resolvê-lo usando Python. Use o pdfplumber para ler arquivos PDF, extrair automaticamente as tabelas de cada página e gravá-las em novos arquivos Excel em loop. A ideia é a mesma do método tradicional, mas quanto tempo leva? Não pisque, só preciso pressionar o botão executar e todas as operações serão executadas automaticamente. Todos os arquivos serão gerados e nomeados aleatoriamente. .

Implementação de 4 códigos

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

Efeito de realização: