Hur man konverterar tabeller från PDF till Excel eller CSV med Tabula

Skicka och konvertera pdf till csv och excel

När jag tittar på de historiska data som erbjuds av ett meteorologiskt observatorium i min stad ser jag det de erbjuder dem bara grafiskt och för nedladdning som PDF. Jag förstår inte varför de inte låter dig ladda ner dem i csv, vilket skulle vara mycket mer användbart för alla.

Så jag har letat efter en lösning för att skicka dessa tabeller från pdf till csv eller om någon vill formatera Excel eller Libre Office. Jag gillar csv för med en csv gör du allt du kan hantera det med python och dess bibliotek eller så kan du enkelt importera det till vilket kalkylblad som helst.

Eftersom tanken är att uppnå en automatiserad process, vad jag vill är ett manus för att arbeta med Python och det är här Tabula kommer in.

Konvertera pdf till csv med Tabula

Stegen och användningen är mycket enkel. Den första kommer att vara installera Tabula-biblioteket i vår utvecklingsmiljö. Tabula låter oss extrahera data från tabeller i PDF till Pandas dataframes, Python-biblioteket optimerat för att arbeta med csv och arrays.

Det tillåter också extrahera och konvertera mellan PDF, JSON, CSV och TSV. En ädelsten. Du kan hitta mycket mer information i dess github-förvar

Prenumerera på vår mailinglista

Jag utnyttjar allt arbete från tidigare dagar och installerar det i Anaconda. I länken kan du se hur installera Anaconda.

Vi installerar Tabula

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

När jag körde det gav det mig ett fel

lösningen enligt deras dokumentation var att avinstallera den gamla versionen av Tabula och installera den nya.

pip uninstall tabula
pip install tabula-py

Vi skapar den körbara .py

läs tabeller från pdf till csv

Jag skapar den körbara .py som jag kallar pdftocsv.py Jag lägger den i min Downloads / eltiempo-mapp och det är en fil med följande kod

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-filen som ska läsas heter inforatge.pdf och jag säger att produktionen heter out.csv och den kommer att finnas kvar i den mapp där vi arbetar.

Vi går till katalogen där vi har både körbar och pdf som vi vill konvertera. Det är viktigt eftersom det kommer att berätta för oss att det inte kan hitta filen.

cd Descargas/eltiempo

I den här katalogen har vi PDF, .py-filen som vi har skapat och där kommer den att returnera den csv vi vill ha.

Vi kör koden

python pdftocsv.py

Observera att jag har använt python, det vill säga jag säger att den ska köras med python 2 och inte med python3 som misslyckas. Och det är det om det inte returnerar något fel, vi har det redan.

köra Tabula i vår Anaconda-utvecklingsmiljö

Vi har lagt till ytterligare 3 rader i filen för runtime-kontroll. i slutet har vi lämnat vår 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))

Fler alternativ från Tabula

Fler exempel på saker vi kan göra. Det finns många alternativ, det är bäst att gå igenom det officiella Github-arkivet som jag har kvar

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

Och utan tvekan en av de mest användbara sakerna för att konvertera alla PDF-, JSON-filer etc. i en katalog.

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

Med detta kan vi automatisera uppgifter som annars skulle vara långa och tråkiga. I slutändan är detta en av anledningarna till att använda detta bibliotek.

Konvertera pdf till Excel online

Om det vi vill är att helt enkelt konvertera en fil, extrahera data från tabellen från PDF till Excel, Librecalc eller liknande, är det inte nödvändigt att komplicera den så mycket. Det finns verktyg tillgängliga för att göra detta, vissa att installera och andra för att få jobbet gjort online.

Jag har provat dessa två onlineverktyg och de fungerar mycket bra.

Tänk på att detta inte är ett automatiserat jobb, och det är därför studien av dessa verktyg inte har varit uttömmande. Jag kommenterar dem bara för dem som kan vara intresserade.

Den klassiska metoden

Och vi har alltid den klassiska metoden, den mest slarviga och dyra men i slutändan är det ett alternativ om det är lite arbete.

Kopiera tabellcellerna från pdf och klistra in dem i vårt kalkylblad.

Lämna en kommentar