Cum se convertesc tabelele din PDF în Excel sau CSV cu Tabula

Treceți și convertiți pdf în CSV și Excel

Privind datele istorice oferite de un observator meteorologic din orașul meu, văd asta le oferă doar grafic și pentru descărcare în format PDF. Nu înțeleg de ce nu vă lasă să le descărcați în csv, ceea ce ar fi mult mai util pentru toată lumea.

Așa că am căutat una soluție pentru a trece aceste tabele de la pdf la CSV sau dacă cineva dorește să formateze Excel sau Libre Office. Îmi place csv, deoarece cu un csv faci tot ce poți gestiona cu python și bibliotecile sale sau îl poți importa cu ușurință în orice foaie de calcul.

Deoarece ideea este de a obține un proces automat, ceea ce vreau este un script pentru a lucra cu Python și aici intervine Tabula.

Convertiți pdf în CSV cu Tabula

Pașii și funcționarea sunt foarte simple. Primul va fi instalați biblioteca Tabula în mediul nostru de dezvoltare. Tabula ne permite să extragem date din tabele în PDF în cadrele de date Pandas, biblioteca Python optimizată pentru lucrul cu CSV și matrice.

Permite, de asemenea extrageți și convertiți între PDF, JSON, CSV și TSV. Bijuterie. Puteți găsi mult mai multe informații în depozit github

Abonați-vă la lista noastră de discuții

Profit de toate lucrările din zilele anterioare și îl instalez în Anaconda. În link puteți vedea cum instalați Anaconda.

Instalăm Tabula

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

Când l-am executat, mi-a dat o eroare

soluția indicată în documentația lor a fost dezinstalarea versiunii vechi a Tabula și instalarea noii versiuni.

pip uninstall tabula
pip install tabula-py

Creăm .py executabil

citiți tabele de la pdf la CSV

Creez executabilul .py pe care îl numesc pdftocsv.py îl pun în folderul Descărcări / eltiempo și este un fișier cu următorul cod

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

PDF-ul de citit se numește inforatge.pdf și îi spun că ieșirea se numește out.csv și va rămâne în folderul în care lucrăm.

Mergem în directorul în care avem atât executabilul, cât și fișierul pdf pe care vrem să îl convertim. Este important pentru că dacă ne spuneți că nu puteți găsi fișierul.

cd Descargas/eltiempo

În acest director avem PDF-ul, fișierul .py pe care l-am creat și acolo va returna csv-ul dorit.

Executăm codul

python pdftocsv.py

Observați că am folosit python, adică îi spun să-l rulez cu python 2 și nu cu python3 care eșuează. Și atât, dacă nu returnează nicio eroare, o avem deja.

rulați Tabula în mediul nostru de dezvoltare Anaconda

Am adăugat încă 3 linii în fișier pentru controlul runtime. la final am lăsat fișierul nostru pdftocsv.py ca

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

Mai multe opțiuni din Tabula

Mai multe exemple de lucruri pe care le putem face. Există multe opțiuni, cel mai bine este să treceți prin depozitul oficial Github pe care l-am lăsat

# 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, fără îndoială, unul dintre cele mai utile lucruri pentru a converti toate fișierele PDF, JSON etc. dintr-un director.

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

Cu aceasta putem automatiza sarcini care altfel ar fi lungi și obositoare. În cele din urmă acesta este unul dintre motivele pentru utilizarea acestei biblioteci.

Convertiți pdf în Excel online

Dacă vrem să convertim pur și simplu un fișier, să extragem datele din tabel din PDF în Excel, Librecalc sau altele similare, nu este necesar să îl complicăm atât de mult. Există instrumente disponibile pentru a face acest lucru, unele pentru instalare și altele pentru a face treaba online.

Am încercat aceste două instrumente online și funcționează foarte bine.

Rețineți că acesta nu este un loc de muncă automatizat și, prin urmare, studiul acestor instrumente nu a fost exhaustiv. Le comentez doar pentru cei care ar putea fi interesați.

Metoda clasică

Și avem întotdeauna metoda clasică, cea mai neglijentă și mai scumpă, dar în cele din urmă este o opțiune dacă este puțină muncă.

Copiați celulele tabelului din fișierul pdf și lipiți-le în foaia de calcul.

Lasă un comentariu