Tabellen converteren van PDF naar Excel of CSV met Tabula

Geef en converteer pdf naar csv en Excel

Kijkend naar de historische gegevens die worden aangeboden door een meteorologisch observatorium in mijn stad, zie ik dat ze bieden ze alleen grafisch aan en om te downloaden als pdf​ Ik begrijp niet waarom ze je ze niet in csv laten downloaden, wat voor iedereen veel nuttiger zou zijn.

Dus ik heb er een gezocht oplossing om deze tabellen van pdf naar csv door te geven of als iemand Excel of Libre Office wil formatteren​ Ik hou van csv omdat je met een csv alles doet wat je ermee kunt doen met Python en zijn bibliotheken, of je kunt het gemakkelijk in een spreadsheet importeren.

Omdat het idee is om een ​​geautomatiseerd proces te realiseren, wil ik een script dat met Python werkt en dit is waar Tabula van pas komt.

Converteer pdf naar csv met Tabula

De stappen en bediening zijn heel eenvoudig. De eerste zal zijn installeer de Tabula-bibliotheek in onze ontwikkelomgeving​ Tabula stelt ons in staat om gegevens uit tabellen in PDF te extraheren naar Pandas dataframes, de Python-bibliotheek die is geoptimaliseerd voor het werken met csv en arrays.

Staat ook toe extraheer en converteer tussen PDF, JSON, CSV en TSV​ Een edelsteen. U kunt veel meer informatie vinden in het github-opslagplaats

Ik profiteer van al het werk van voorgaande dagen en installeer het in Anaconda. In de link kun je zien hoe installeer Anaconda.

We installeren Tabula

#primero activamos nuestro entorno de desarrollo en nuestro caso sería conda activate comparador
pip install tabula-py

Bij het uitvoeren ervan kreeg ik een foutmelding

de oplossing zoals aangegeven in hun documentatie was om de oude versie van Tabula te verwijderen en de nieuwe te installeren.

pip uninstall tabula
pip install tabula-py

We maken het uitvoerbare bestand .py

lees tabellen van pdf naar csv

Ik maak het uitvoerbare .py dat ik pdftocsv.py noem.Ik zet het in mijn map Downloads / eltiempo en het is een bestand met de volgende code

import tabula
# Extaer los datos del pdf al DataFrame
df = tabula.read_pdf("inforatge.pdf")
# lo convierte en un csv llamdo out.csv codificado con utf-8
df.to_csv('out.csv', sep='\t', encoding='utf-8')

De pdf die moet worden gelezen heet inforatge.pdf en ik vertel het dat de uitvoer out.csv wordt genoemd en dat het in de map waarin we werken, blijft.

We gaan naar de directory waar we zowel het uitvoerbare bestand als de pdf hebben die we willen converteren. Het is belangrijk als het ons vertelt dat het het bestand niet kan vinden.

cd Descargas/eltiempo

In deze map hebben we de PDF, het .py-bestand dat we hebben gemaakt en daar zal het de csv retourneren die we willen.

We voeren de code uit

python pdftocsv.py

Merk op dat ik python heb gebruikt, dat wil zeggen, ik vertel het om het uit te voeren met python 2 en niet met python3 dat mislukt. En dat is het als het geen fout retourneert, we hebben het al.

voer Tabula uit in onze Anaconda-ontwikkelomgeving

We hebben nog 3 regels aan het bestand toegevoegd voor runtime-controle. aan het einde hebben we ons pdftocsv.py-bestand verlaten als

import tabula
import time

start_time = time.time()

df = tabula.read_pdf("inforatge.pdf")
df.to_csv('out.csv', sep='\t', encoding='utf-8')

print("--- %s seconds ---" % (time.time() - start_time))

Meer opties van Tabula

Meer voorbeelden van dingen die we kunnen doen. Er zijn veel opties, het is het beste om door de officiële Github-repository te gaan die ik nog heb

# Leer PDF remotos y convertirlos en DataFrame
df2 = tabula.read_pdf("https://github.com/tabulapdf/tabula-java/raw/master/src/test/resources/technology/tabula/arabic.pdf")

# Convertir un PDF en CSV
tabula.convert_into("test.pdf", "output.csv", output_format="csv")

En zonder twijfel een van de handigste dingen om alle pdf-, json-, enz. Bestanden in een directory te converteren.

tabula.convert_into_by_batch("input_directory", output_format='csv')

Hiermee kunnen we taken automatiseren die anders lang en vervelend zouden zijn. Dit is uiteindelijk een van de redenen om deze bibliotheek te gebruiken.

Converteer pdf naar Excel online

Als we gewoon een bestand willen converteren, de gegevens uit de tabel extraheren van PDF naar Excel, Librecalc of iets dergelijks, is het niet nodig om het zo ingewikkeld te maken. Er zijn tools beschikbaar om dit te doen, sommige om te installeren en andere om de klus online te klaren.

Ik heb deze twee online tools geprobeerd en ze werken erg goed.

Houd er rekening mee dat dit geen geautomatiseerde taak is en daarom is de studie van deze tools niet uitputtend geweest. Ik geef er alleen commentaar op voor degenen die mogelijk geïnteresseerd zijn.

De klassieke methode

En we hebben altijd de klassieke methode, de meest slordige en dure maar uiteindelijk is het een optie als er weinig werk is.

Kopieer de tabelcellen uit de pdf en plak ze in onze spreadsheet.

Laat een reactie achter