Как извлечь таблицы из PDF
Извлечение таблиц из PDF-документов — важнейшая задача при анализе данных и сборе информации. Этот процесс включает в себя идентификацию и извлечение табличных данных из PDF-файлов, преобразование их в структурированный формат, например CSV или Excel, для дальнейшей обработки и анализа.
В этой статье мы покажем вам, как извлекать таблицы из PDF и сохранять их в файл Excel с помощью библиотек Python.
Установите библиотеки Python
Это решение требует установки в качестве зависимости Spire.PDF for Python и Spire.XLS for Python. Spire.PDF используется для обнаружения и извлечения таблиц из PDF-документов, а Spire.XLS — для создания электронных таблиц на основе данных PDF-таблиц. Вы можете установить их, выполнив следующие команды pip.
pip install Spire.PDF
pip install Spire.XLS
Извлечение таблиц из PDF в Excel на Python
Spire.PDF for Python предоставляет удобное решение для извлечения таблиц из PDF-документов с возможностью поиска. Метод PdfTableExtractor.ExtractTable(pageIndex) позволяет извлекать таблицы с определенной страницы. Затем вы можете перебирать строки и столбцы каждой таблицы, получая доступ к тексту в каждой ячейке с помощью метода PdfTable.GetText(rowIndex, columnIndex).
Наконец, извлеченные данные можно записать в рабочую таблицу Excel с помощью свойства Worksheet.Range[rowIndex, columnIndex].Value программы Spire.XLS for Python для дальнейшего анализа.
from spire.pdf import *
from spire.xls import *
# Create a PdfDocument object
doc = PdfDocument()
# Load the sample PDF file
doc.LoadFromFile("TableExample.pdf")
# Create a Workbook object
workbook = Workbook()
# Clear default worksheets
workbook.Worksheets.Clear()
# Create a PdfTableExtractor object
extractor = PdfTableExtractor(doc)
sheetNumber = 1
# Loop through the pages
for pageIndex in range(doc.Pages.Count):
# Extract tables from a specific page
tableList = extractor.ExtractTable(pageIndex)
# Determine if the table list is not empty
if tableList is not None and len(tableList) > 0:
# Loop through the tables in the list
for table in tableList:
# Add a worksheet
sheet = workbook.Worksheets.Add(f"sheet{sheetNumber}")
# Get row number and column number of a certain table
row = table.GetRowCount()
column = table.GetColumnCount()
# Loop through the rows and columns
for i in range(row):
for j in range(column):
# Get text from the specific cell
text = table.GetText(i, j)
# Write text to a specified cell
sheet.Range[i + 1, j + 1].Value = text
# Auto-fit columns
sheet.AllocatedRange.AutoFitColumns()
sheetNumber += 1
# Save to file
workbook.SaveToFile("ToExcel.xlsx", ExcelVersion.Version2013)
Заключение
В этой статье вы узнали, как извлекать таблицы из PDF и сохранять их в файл Excel на языке Python. Spire.PDF for Python, являясь мощной библиотекой Python, позволяет разработчикам выполнять широкий спектр операций с PDF-документами, таких как:
Извлечение вложений из PDF в Python