Com convertir taules de PDF a Excel o CSV amb Tabula

Passar i convertir pdf a csv i excel

Mirant les dades històriques que ofereix un observatori meteorològic de la meva ciutat, veig que només els ofereixen gràficament i per descarregar com PDF. No entenc per què no deixen descarregar-los en csv que seria molt més útil per a tothom.

Així que he estat buscant una solució per passar aquestes taules de pdf a csv o si algú vol a format Excel o Libre Office. M'agrada csv perquè amb un csv fas de tot pots tractar-lo amb python i les seves llibreries o el podeu importar fàcilment en qualsevol full de càlcul.

Com la idea és aconseguir un procés automatitzat el que vull és un script per treballar amb Python i aquí és on entra Tabula.

Convertir pdf a csv amb Tabula

Els passos i funcionament és molt senzill. El primer serà instal·lar la llibreria de Tabula en el nostre entorn de desenvolupament. Tabula ens permet extreure dades de taules en PDF a dataframes de Pandes la llibreria de Python optimitzada pra trabajr amb csv i arrays.

també permet extreure i convertir entre PDF, JSON, CSV i TSV. Una joia. Pots trobar molta més informació al seu repositori de Github

Aconsegueix les millors ofertes llista de correu

Jo aprofito tota la feina de dies anteriors i el instal·lo en Anaconda. A l'enllaç pots veure com instal·lar Anaconda.

Insatalamos Tabula

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

A l'hora d'executar a mi em feia una errada

la solució com indiquen en la seva documentació va ser desinstal·lar la versió antiga de Tabula i instal·lar la nova.

pip uninstall tabula
pip install tabula-py

Creem l'executable .py

llegir taules de pdf a csv

Crec l'executable .py que dic pdftocsv.py el fico a la carpeta Descàrregues / eltiempo i és un arxiu amb el següent codi

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

El pdf a llegir es diu inforatge.pdf i li dic que la sortida es digui out.csv i es quedarà a la carpeta en la qual estem treballant.

Ens anem a directori on tenim tant l'executable i el pdf que volem convertir. És important perquè si ens dirà que no troba l'arxiu.

cd Descargas/eltiempo

En aquest directori tenim el PDF, l'arxiu .py que hem creat i aquí ens retornarà el csv que volem.

Executem el codi

python pdftocsv.py

Fixa't que he fet servir python, és a dir que li dic que l'executi amb python 2 i no amb python3 que falla. I ja està si no torna cap error ja el tenim.

executar Tabula en el nostre entorn de desenvolupament Anaconda

Hem afegit 3 línies més a l'arxiu per al control de temps d'execució. a la fi hem deixat el nostre arxiu pdftocsv.py com

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

Més opcions de Tabula

Més exemples de coses que podem fer. Hi ha moltes opcions, el millor és passar-se pel repositori de Github oficial que he deixat

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

I sens dubte una de les coses més útils convertir tots els arxius PDF, JSON, etc d'un directori.

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

Amb això podrem automatitzar tasques que d'altra manera serien llargues i tedioses. A la fin aquest és un dels motius d'usar aquesta llibreria.

Convertir pdf a excel línia

Si el que volem és simplement convertir un arxiu, extreure les dades de la taula de PDF a Excel, Librecalc o similar, no cal complicar-tant. Hi ha eines disponibles per fer aquesta tasca, algunes per instal·lar-les i altres per fer la feina en línia.

Jo he provat aquestes dues eines online i funcionen molt bé.

Tingues en compte que això no és una feina automatitzat, i per això l'estudi d'aquestes eines no ha estat exhaustiu. Tan sols les comento per a qui li pugui interessar.

El mètode clàssic

I sempre ens queda el mètode clàssic, el més barroer i costós però que a la fi és una opció si haypoco treball.

Copiar les cel·les de la taula de el pdf i enganxar-les en el nostre full de càlcul.

Deixa un comentari