Sådan konverteres tabeller fra PDF til Excel eller CSV med Tabula

Pass og konverter pdf til csv og excel

Når jeg ser på de historiske data, der tilbydes af et meteorologisk observatorium i min by, ser jeg det de tilbyder dem kun grafisk og til download som PDF. Jeg forstår ikke, hvorfor de ikke lader dig downloade dem i csv, hvilket ville være meget mere nyttigt for alle.

Så jeg har ledt efter en løsning til at overføre disse tabeller fra pdf til csv, eller hvis nogen vil formatere Excel eller Libre Office. Jeg kan godt lide csv, fordi du med en csv gør alt, hvad du kan håndtere det med python og dets biblioteker, eller du kan nemt importere det til ethvert regneark.

Idéen er at opnå en automatiseret proces, hvad jeg vil have, er et script til at arbejde med Python, og det er her Tabula kommer ind.

Konverter pdf til csv med Tabula

Trin og betjening er meget enkel. Den første vil være installer Tabula-biblioteket i vores udviklingsmiljø. Tabula giver os mulighed for at udtrække data fra PDF-tabeller til Pandas dataframes, Python-biblioteket optimeret til at arbejde med csv og arrays.

Det tillader også udpak og konverter mellem PDF, JSON, CSV og TSV. En perle. Du kan finde meget mere information i dens github-arkiv

Jeg drager fordel af alt arbejdet fra tidligere dage og installerer det i Anaconda. I linket kan du se hvordan installer Anaconda.

Vi installerer Tabula

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

Da jeg udførte det, gav det mig en fejl

løsningen som angivet i deres dokumentation var at afinstallere den gamle version af Tabula og installere den nye.

pip uninstall tabula
pip install tabula-py

Vi opretter den eksekverbare .py

læse tabeller fra pdf til csv

Jeg opretter den eksekverbare .py, som jeg kalder pdftocsv.py, jeg lagde den i min Downloads / eltiempo-mappe, og det er en fil med følgende kode

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

Den pdf, der skal læses, hedder inforatge.pdf, og jeg fortæller det, at output kaldes out.csv, og det forbliver i den mappe, hvor vi arbejder.

Vi går til den mappe, hvor vi har både den eksekverbare og den pdf, som vi vil konvertere. Det er vigtigt, for hvis du fortæller os, at du ikke kan finde filen.

cd Descargas/eltiempo

I denne mappe har vi PDF, .py-filen, som vi har oprettet, og der vil den returnere den csv, vi ønsker.

Vi udfører koden

python pdftocsv.py

Bemærk, at jeg har brugt python, det vil sige, jeg fortæller det at køre det med python 2 og ikke med python3, der fejler. Og det er det, hvis det ikke returnerer nogen fejl, har vi det allerede.

køre Tabula i vores Anaconda-udviklingsmiljø

Vi har tilføjet 3 flere linjer til filen til runtime-kontrol. i slutningen har vi efterladt vores pdftocsv.py-fil som

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

Flere muligheder fra Tabula

Flere eksempler på ting, vi kan gøre. Der er mange muligheder, det er bedst at gennemgå det officielle Github-lager, som jeg har forladt

# 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")

Og uden tvivl en af ​​de mest nyttige ting at konvertere alle PDF, JSON osv. Filer i et bibliotek.

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

Med dette kan vi automatisere opgaver, der ellers ville være lange og kedelige. I sidste ende er dette en af ​​grundene til at bruge dette bibliotek.

Konverter pdf til Excel online

Hvis det, vi ønsker, er at bare konvertere en fil, udtrække dataene fra tabellen fra PDF til Excel, Librecalc eller lignende, er det ikke nødvendigt at komplicere det så meget. Der er værktøjer til rådighed til at gøre dette, nogle til at installere og andre for at få arbejdet gjort online.

Jeg har prøvet disse to onlineværktøjer, og de fungerer meget godt.

Husk, at dette ikke er et automatiseret job, og derfor har undersøgelsen af ​​disse værktøjer ikke været udtømmende. Jeg kommenterer kun dem for dem, der kan være interesserede.

Den klassiske metode

Og vi har altid den klassiske metode, den mest sjusket og dyre, men i sidste ende er det en mulighed, hvis der er lidt arbejde.

Kopier bordcellerne fra pdf'en og indsæt dem i vores regneark.

Efterlad en kommentar