Jak konwertować tabele z PDF do Excela lub CSV za pomocą Tabula

Przekaż i przekonwertuj PDF na CSV i Excel

Widzę to, patrząc na dane historyczne oferowane przez obserwatorium meteorologiczne w moim mieście oferują je tylko graficznie i do pobrania w formacie PDF. Nie rozumiem, dlaczego nie pozwalają ci ich pobrać w formacie csv, co byłoby znacznie bardziej przydatne dla wszystkich.

Więc szukałem jednego rozwiązanie do przekazania tych tabel z pdf do csv lub jeśli ktoś chce sformatować Excel lub Libre Office. Lubię csv, ponieważ z csv robisz wszystko, co możesz sobie z nim poradzić w Pythonie i jego bibliotekach lub możesz łatwo zaimportować go do dowolnego arkusza kalkulacyjnego.

Ponieważ pomysł polega na osiągnięciu zautomatyzowanego procesu, potrzebuję skryptu do pracy z Pythonem i tu właśnie pojawia się Tabula.

Konwertuj PDF na CSV za pomocą Tabula

Kroki i obsługa są bardzo proste. Pierwszy będzie zainstaluj bibliotekę Tabula w naszym środowisku programistycznym. Tabula pozwala nam wyodrębniać dane z tabel w formacie PDF do ramek danych Pandas, biblioteki Pythona zoptymalizowanej do pracy z csv i tablicami.

To także pozwala wyodrębnianie i konwertowanie plików PDF, JSON, CSV i TSV. Klejnot. Więcej informacji można znaleźć w jego repozytorium github

Zapisz się do naszej listy mailingowej

Korzystam z całej pracy z poprzednich dni i instaluję ją w Anacondzie. W linku możesz zobaczyć, jak to zrobić zainstaluj Anaconda.

Instalujemy Tabulę

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

Podczas wykonywania go dało mi to błąd

rozwiązaniem wskazanym w ich dokumentacji było odinstalowanie starej wersji Tabuli i zainstalowanie nowej.

pip uninstall tabula
pip install tabula-py

Tworzymy plik wykonywalny .py

czytaj tabele z pdf do csv

Tworzę plik wykonywalny .py, który nazywam pdftocsv.py Umieszczam go w folderze Pobrane / eltiempo i jest to plik z następującym kodem

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

Plik PDF do odczytania nazywa się inforatge.pdf i mówię mu, że plik wyjściowy nazywa się out.csv i pozostanie w folderze, w którym pracujemy.

Przechodzimy do katalogu, w którym mamy zarówno plik wykonywalny, jak i plik pdf, który chcemy przekonwertować. Jest to ważne, ponieważ jeśli powiesz nam, że nie możesz znaleźć pliku.

cd Descargas/eltiempo

W tym katalogu mamy utworzony przez nas plik PDF, plik .py, który zwróci żądany plik csv.

Wykonujemy kod

python pdftocsv.py

Zwróć uwagę, że użyłem pythona, to znaczy mówię mu, aby uruchomił go z pythonem 2, a nie z pythonem3, który się nie powiedzie. I to wszystko, jeśli nie zwraca żadnego błędu, już go mamy.

uruchom Tabulę w naszym środowisku programistycznym Anaconda

Dodaliśmy do pliku jeszcze 3 wiersze do sterowania w czasie wykonywania. na końcu zostawiliśmy nasz plik pdftocsv.py jako

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

Więcej opcji od Tabula

Więcej przykładów rzeczy, które możemy zrobić. Opcji jest wiele, najlepiej przejść przez oficjalne repozytorium Github, które opuściłem

# 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 bez wątpienia jedna z najbardziej przydatnych rzeczy do konwersji wszystkich plików PDF, JSON itp. W katalogu.

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

Dzięki temu możemy zautomatyzować zadania, które w innym przypadku byłyby długie i żmudne. W końcu jest to jeden z powodów korzystania z tej biblioteki.

Konwertuj pliki PDF na Excel online

Jeśli chcemy po prostu przekonwertować plik, wyodrębnić dane z tabeli z PDF do Excela, Librecalc lub podobnego, nie trzeba go aż tak skomplikować. Dostępne są narzędzia do tego, niektóre do zainstalowania, a inne do wykonania zadania online.

Wypróbowałem te dwa narzędzia online i działają one bardzo dobrze.

Należy pamiętać, że nie jest to praca zautomatyzowana, dlatego badanie tych narzędzi nie było wyczerpujące. Komentuję je tylko dla zainteresowanych.

Metoda klasyczna

I zawsze mamy klasyczną metodę, najbardziej niechlujną i kosztowną, ale w końcu jest to opcja, jeśli jest mało pracy.

Skopiuj komórki tabeli z pliku PDF i wklej je do naszego arkusza kalkulacyjnego.

Zostaw komentarz