Como Importar Tabelas PDF para o Excel: Um Guia Prático

2026-10-14 09:05:39 Jack Du
AI Summarize:
ChatGPT
ChatGPT ✓
Claude ✓
Grok ✓
Perplexity ✓
Quick
Quick
Concise overview
Highlights
Key takeaways
Detailed
Structured explanation
Brief
One sentence summary
Summarize |

Import PDF Tables into Excel

As tabelas em PDF frequentemente contêm dados que você precisa classificar, filtrar ou analisar no Excel. Copiar e colar pode deixar esses dados em uma única coluna ou desorganizar a estrutura de linhas. O recurso integrado De PDF do Excel oferece uma forma mais direta de importar tabelas detectadas para células da planilha.

Este guia explica como importar tabelas PDF com o Power Query, combinar tabelas em várias páginas, preservar zeros à esquerda e verificar espaços em texto quebrado. Também inclui um fluxo de trabalho em Python para extrair tabelas de uma pasta de arquivos PDF para pastas de trabalho do Excel.

As etapas do Power Query abaixo usam o Excel para Windows com o conector De PDF disponível. Comece com um PDF baseado em texto; páginas digitalizadas exigem um fluxo de OCR antes que os dados da tabela possam ser extraídos.

1. Importar Tabelas PDF para o Excel com o Power Query

O recurso De PDF do Excel permite identificar tabelas em um PDF e importar seus dados para células da planilha. Abra a tabela no Editor do Power Query para revisar seu conteúdo antes de carregá-la.

  1. Abra o Excel e selecione Dados → Obter Dados → De Arquivo → De PDF. Get data from PDF
  2. Selecione seu arquivo PDF e clique em Importar.
  3. Na janela Navegador, selecione uma entrada Tabela detectada para visualizar seu conteúdo. Verifique se ela contém as linhas e colunas necessárias. Select a detected table
  4. Clique em Transformar Dados para abrir o Editor do Power Query. Transform data
  5. Revise a tabela e selecione Página Inicial → Fechar e Carregar para carregá-la em uma planilha do Excel. Close and load

Se a pré-visualização já estiver correta e nenhum ajuste for necessário, você pode clicar em Carregar diretamente no Navegador.

Para tabelas que exigem combinação ou limpeza, faça os ajustes descritos nas seções a seguir antes de carregar o resultado final.

2. Combinar Tabelas em Várias Páginas

O Power Query pode reconhecer uma tabela que abrange várias páginas do PDF como uma única tabela ou como tabelas separadas. Verifique as entradas no Navegador antes de decidir se deve anexá-las.

Quando o Power Query Detecta Uma Única Tabela

Cabeçalhos consistentes repetidos em cada página podem ajudar o Power Query a reconhecer a tabela inteira. No Navegador, ela pode aparecer como uma única entrada, como Table001 (Page 1–3) .

Selecione essa entrada e verifique a pré-visualização. Se ela contiver todos os registros necessários, clique em Carregar , ou escolha Transformar Dados para fazer ajustes primeiro. Nenhuma operação de anexação é necessária.

Quando o Power Query Detecta Tabelas Separadas

Se apenas a primeira página contiver cabeçalhos, o Power Query pode detectar as páginas de continuação como tabelas separadas com nomes de coluna genéricos, como Column1, Column2 e Column3.

Para combiná-las:

  1. No Navegador, habilite Selecionar vários itens.
  2. Selecione as tabelas pertencentes à mesma tabela de várias páginas e verifique suas pré-visualizações. Select the tables belonging to the same cross-page table
  3. Clique em Transformar Dados. Cada tabela selecionada aparece como uma consulta separada no Editor do Power Query. Transform data
  4. Use os cabeçalhos da primeira tabela como referência e renomeie as colunas correspondentes nas tabelas de continuação. Por exemplo, renomeie Column1 para Employee ID e Column2 para Full Name. Rename column names
  5. Verifique se os nomes das colunas correspondentes coincidem exatamente, incluindo quaisquer espaços, antes de anexar.

Cabeçalhos de uma única palavra, como Department, geralmente não precisam ser redigitados. Preste mais atenção a cabeçalhos com várias palavras, especialmente os que quebram em várias linhas no PDF.

Por exemplo, Employee e ID podem aparecer em linhas separadas na célula de origem. O Navegador pode exibir o cabeçalho como Employee ID , mesmo que seu nome real contenha uma quebra de linha em vez de um espaço. Renomear a coluna de outra tabela para Employee ID com um espaço normal criaria então uma incompatibilidade.

Para um cabeçalho quebrado, clique com o botão direito na coluna na primeira consulta e selecione Renomear . Selecione todo o nome existente e digite manualmente um nome de linha única, como Employee ID. Use esse nome exato para as colunas correspondentes nas outras consultas. Evite copiar o cabeçalho quebrado original, que pode reter a quebra de linha oculta.

Depois que os nomes das colunas estiverem consistentes:

  1. Selecione uma consulta e escolha Página Inicial → Anexar Consultas ▼ → Anexar Consultas como Novo. Append queries as new
  2. Escolha Duas tabelas ou Três ou mais tabelas , dependendo do número de consultas. Three or more tables
  3. Selecione as tabelas a anexar. Para três ou mais tabelas, adicione-as à lista Tabelas a anexar e organize-as na ordem das páginas do PDF. Select tables to append
  4. Clique em OK para criar a consulta combinada. Combined query

O Power Query anexa dados correspondendo nomes de colunas, em vez de posições de colunas. Se o resultado contiver duas colunas aparentemente idênticas ou valores nulos inesperados, volte às consultas de origem e verifique seus nomes em busca de quebras de linha ocultas ou espaços extras.

Por fim, revise a tabela combinada em busca de registros ausentes, linhas de cabeçalho repetidas e texto indesejado de rodapé antes de carregá-la no Excel.

3. Preservar Zeros à Esquerda em Colunas de ID

IDs de funcionários, códigos de produtos e identificadores semelhantes podem conter zeros à esquerda. Se o Power Query atribuir um tipo de dados numérico a esses valores, um ID como 00123 pode aparecer como 123.

Para preservar o ID original:

  1. No Editor do Power Query, selecione a coluna Employee ID. Select employee id column
  2. Abra o menu Tipo de Dados e altere Número Inteiro para Texto. Change data type
  3. Se for solicitado substituir a conversão de tipo existente, escolha Substituir atual. Replace current
  4. Verifique se os valores exibem seus zeros à esquerda — por exemplo, 00123 em vez de 123. Check the values

Trate identificadores como texto mesmo quando contiverem apenas dígitos. Sua finalidade é identificar registros, em vez de servir como valores para cálculos.

Faça esse ajuste antes de carregar os dados no Excel. Se alterar o tipo não restaurar os zeros, compare os valores com o PDF original; zeros ausentes não podem ser inferidos de forma confiável, a menos que os identificadores sigam uma regra conhecida de comprimento fixo.

4. Verificar Texto Quebrado e Carregar a Tabela Final

Texto que quebra em várias linhas em uma célula do PDF pode ser unido sem espaço durante a importação. Por exemplo, um nome exibido como Robert em uma linha e Williams na seguinte pode se tornar RobertWilliams.

Verifique colunas que contêm nomes, endereços e descrições em relação ao PDF original. Corrija individualmente os erros de espaçamento confirmados. Para um valor incorreto específico, selecione a coluna e use Transformar → Substituir Valores para substituí-lo pelo texto correto.

Evite aplicar uma regra geral que insira espaços onde o texto foi quebrado. Uma única palavra também pode quebrar entre linhas: Coordinato seguido de r deve se tornar Coordinator , sem espaço.

Antes de carregar a tabela final, verifique se:

  • A contagem de registros corresponde à tabela de origem.
  • Os registros nos limites das páginas estão completos.
  • As colunas de ID mantêm seus zeros à esquerda.
  • O texto quebrado tem o espaçamento correto.
  • As colunas numéricas e de data usam tipos de dados apropriados.

Em seguida, selecione Página Inicial → Fechar e Carregar ▼ → Fechar e Carregar em , escolha Tabela e selecione a planilha de destino.

Se você anexou várias consultas de nível de página, carregue apenas a consulta combinada final como uma tabela de planilha. Defina as consultas intermediárias como Apenas Criar Conexão para que permaneçam disponíveis para a consulta combinada sem criar tabelas de planilha separadas.

5. Automatizar a Extração de Tabelas PDF para o Excel com Python

O Power Query oferece uma forma interativa de importar e preparar dados de tabelas PDF. Quando você precisa processar vários arquivos PDF repetidamente, pode automatizar a extração com Python.

O exemplo a seguir usa o Spire.PDF for Python para detectar tabelas e ler o conteúdo de suas células, e o openpyxl , uma biblioteca de Excel de código aberto, para gravar os dados extraídos em arquivos XLSX. Cada PDF produz uma pasta de trabalho, com cada tabela detectada salva em uma planilha separada.

Instalar as Bibliotecas

Instale ambos os pacotes:

pip install Spire.PDF openpyxl

Código de Extração em Lote

Atualize INPUT_FOLDER e OUTPUT_FOLDER para corresponder aos seus diretórios. O script lê arquivos PDF diretamente da pasta de entrada, examina cada página e salva as pastas de trabalho resultantes na pasta de saída.

from pathlib import Path

from spire.pdf import PdfDocument, PdfTableExtractor
from openpyxl import Workbook
from openpyxl.styles import Alignment


INPUT_FOLDER = Path(r"E:\Documents\input")
OUTPUT_FOLDER = Path(r"E:\Documents\output")


def extract_pdf_tables_to_excel(pdf_path, output_path):
    doc = PdfDocument()

    try:
        doc.LoadFromFile(str(pdf_path))
        extractor = PdfTableExtractor(doc)

        workbook = Workbook()
        workbook.remove(workbook.active)
        table_count = 0

        # Extract tables from every page.
        for page_index in range(doc.Pages.Count):
            tables = extractor.ExtractTable(page_index)

            if tables is None:
                continue

            for table_index in range(len(tables)):
                table = tables[table_index]
                row_count = table.GetRowCount()
                column_count = table.GetColumnCount()

                if row_count == 0 or column_count == 0:
                    continue

                sheet = workbook.create_sheet(
                    title=f"Page{page_index + 1}_Table{table_index + 1}"
                )

                for row_index in range(row_count):
                    for column_index in range(column_count):
                        text = table.GetText(row_index, column_index)

                        cell = sheet.cell(
                            row=row_index + 1,
                            column=column_index + 1
                        )

                        # Preserve extracted values as literal text.
                        cell.value = text if text is not None else ""
                        cell.data_type = "s"
                        cell.number_format = "@"
                        cell.alignment = Alignment(
                            vertical="top",
                            wrap_text=True
                        )

                for column_cells in sheet.columns:
                    column_letter = column_cells[0].column_letter
                    sheet.column_dimensions[column_letter].width = 22

                table_count += 1

        if table_count == 0:
            print(f"Skipped: {pdf_path.name} — no tables detected.")
            return

        workbook.save(str(output_path))
        print(
            f"Saved: {output_path.name} "
            f"({table_count} tables)"
        )

    finally:
        doc.Close()


def main():
    if not INPUT_FOLDER.is_dir():
        raise FileNotFoundError(
            f"Input folder not found: {INPUT_FOLDER}"
        )

    OUTPUT_FOLDER.mkdir(parents=True, exist_ok=True)

    pdf_files = sorted(
        (
            path for path in INPUT_FOLDER.iterdir()
            if path.is_file() and path.suffix.lower() == ".pdf"
        ),
        key=lambda path: path.name.lower()
    )

    if not pdf_files:
        print("No PDF files found in the input folder.")
        return

    for pdf_path in pdf_files:
        output_path = OUTPUT_FOLDER / f"{pdf_path.stem}.xlsx"

        try:
            extract_pdf_tables_to_excel(pdf_path, output_path)
        except Exception as error:
            print(f"Failed: {pdf_path.name} — {error}")


if __name__ == "__main__":
    main()

O script chama ExtractTable() para cada página do PDF e então lê cada tabela detectada com GetRowCount(), GetColumnCount() e GetText(). As células extraídas são gravadas em suas linhas e colunas correspondentes em uma nova planilha.

Arquivos sem tabelas detectadas são ignorados. Se um PDF falhar ao ser processado, o script relata o erro e continua com os arquivos restantes.

Você também pode gostar: Extrair Tabelas de PDF Usando Python

Saída e Considerações

Automate PDF Table Extraction

Um PDF chamado report.pdf produz uma pasta de trabalho chamada report.xlsx. Os nomes das planilhas identificam a página e a tabela de origem, como Page1_Table1, Page1_Table2 e Page2_Table1.

Todos os valores extraídos são gravados como texto. Isso preserva os zeros à esquerda presentes no conteúdo extraído, como 00123, e impede que texto começando com = seja interpretado como uma fórmula do Excel. Valores monetários e datas também permanecem como texto e podem precisar de conversão antes de cálculos ou análises baseadas em datas.

Este exemplo exporta dados de tabela em vez de reproduzir a aparência original do PDF. Ele não recria fontes, bordas ou formatação de células mescladas da origem, e não corrige erros de extração, como espaços ausentes. Se uma tabela de várias páginas for detectada como tabelas separadas, essas partes são salvas em planilhas separadas em vez de serem combinadas automaticamente.

Revise a pasta de trabalho gerada em relação ao PDF de origem antes de usar seus dados. Executar o script novamente substitui os arquivos XLSX existentes com os mesmos nomes na pasta de saída.

6. Perguntas Frequentes

Por que não consigo encontrar a opção De PDF no Excel?

Os conectores disponíveis dependem da sua versão e plataforma do Excel. Verifique Dados → Obter Dados → De Arquivo para De PDF . Se ela estiver ausente, verifique se sua instalação é compatível com o conector de PDF. As etapas de importação do Power Query neste guia pressupõem que a opção esteja disponível.

Posso importar uma tabela de PDF digitalizado usando estes métodos?

Um PDF digitalizado armazena o conteúdo de suas páginas como imagens. Os fluxos de trabalho mostrados aqui não incluem OCR, portanto são destinados a PDFs baseados em texto. Para documentos digitalizados, use uma ferramenta de OCR que consiga reconhecer a estrutura da tabela e exportar dados estruturados; depois, verifique os valores extraídos em relação à origem.

A tabela importada no Excel ficará exatamente igual ao PDF?

Esses métodos se concentram em extrair dados de células para uso no Excel. Eles não garantem que fontes, cores, bordas, larguras de coluna ou células mescladas do PDF sejam reproduzidas. Aplique formatação do Excel após a importação se precisar de uma aparência específica.

Posso atualizar a tabela do Power Query quando o PDF mudar?

Sim. Se o PDF de origem for atualizado no mesmo caminho de arquivo, use Dados → Atualizar Tudo para executar a consulta novamente. Revise o resultado depois, especialmente se o número de páginas, tabelas detectadas ou estrutura de colunas tiver mudado. Essas alterações podem exigir ajustes na consulta.

7. Conclusão

Importar tabelas PDF para o Excel envolve mais do que detectar linhas e colunas. O Power Query oferece um ponto de partida prático, mas os próximos passos dependem do resultado: uma tabela de várias páginas pode estar pronta para ser carregada como uma única tabela, ou suas seções podem precisar de nomes de colunas correspondentes antes de poderem ser anexadas. Zeros à esquerda e espaços em texto quebrado também merecem atenção, porque uma tabela aparentemente limpa ainda pode conter valores alterados.

Para tarefas recorrentes, o fluxo de trabalho em Python estende esse processo a uma pasta de PDFs, salvando cada arquivo como uma pasta de trabalho com planilhas separadas para as tabelas detectadas. Escolha o fluxo de trabalho que se adequa à sua carga de trabalho e compare a saída com o PDF de origem — particularmente identificadores, texto com várias linhas e registros nos limites das páginas. Essas verificações ajudam a garantir que os dados importados estejam prontos para filtragem, cálculos e análises adicionais.

Veja Também