كيفية تحويل الجداول من PDF إلى Excel أو CSV باستخدام Tabula

تمرير وتحويل pdf إلى csv و excel

بالنظر إلى البيانات التاريخية التي قدمها مرصد الأرصاد الجوية في مدينتي ، أرى ذلك إنهم يقدمون لهم رسومًا فقط وللتنزيل بتنسيق PDF. لا أفهم سبب عدم السماح لك بتنزيلها بتنسيق csv ، والذي سيكون أكثر فائدة للجميع.

لذلك كنت أبحث عن واحد حل لتمرير هذه الجداول من pdf إلى csv أو إذا أراد شخص ما تنسيق Excel أو Libre Office. أحب csv لأنه باستخدام ملف csv ، يمكنك القيام بكل شيء يمكنك التعامل معه باستخدام Python ومكتباته أو يمكنك استيراده بسهولة إلى أي جدول بيانات.

نظرًا لأن الفكرة هي تحقيق عملية آلية ، فإن ما أريده هو برنامج نصي للعمل مع Python وهنا يأتي دور Tabula.

تحويل pdf إلى csv باستخدام Tabula

الخطوات والتشغيل بسيط للغاية. سيكون الأول تثبيت مكتبة Tabula في بيئتنا التنموية. يسمح لنا Tabula باستخراج البيانات من جداول PDF إلى Pandas dataframes ، مكتبة Python المحسّنة للعمل مع csv والمصفوفات.

كما يسمح استخراج وتحويل بين PDF و JSON و CSV و TSV. جوهرة. يمكنك العثور على المزيد من المعلومات في ملف مستودع جيثب

اشترك في قائمتنا البريدية

أستفيد من كل الأعمال من الأيام السابقة وقمت بتثبيتها في أناكوندا. في الرابط يمكنك أن ترى كيف تثبيت اناكوندا.

نقوم بتثبيت Tabula

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

عند تنفيذه ، أعطاني خطأ

كان الحل كما هو موضح في وثائقهم هو إلغاء تثبيت الإصدار القديم من Tabula وتثبيت الإصدار الجديد.

pip uninstall tabula
pip install tabula-py

نقوم بإنشاء ملف .py القابل للتنفيذ

قراءة الجداول من pdf إلى csv

أنشأت ملف .py القابل للتنفيذ الذي أسميه pdftocsv.py وأضعه في مجلد التنزيلات / eltiempo وهو ملف بالشفرة التالية

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 المراد قراءته اسم inforatge.pdf وأقول له أن الإخراج يسمى out.csv وسيبقى في المجلد الذي نعمل فيه.

نذهب إلى الدليل حيث لدينا كل من الملف القابل للتنفيذ و pdf الذي نريد تحويله. إنه أمر مهم لأنه إذا أخبرتنا أنه لا يمكنك العثور على الملف.

cd Descargas/eltiempo

في هذا الدليل لدينا ملف PDF ، ملف .py الذي أنشأناه وهناك سيعيد ملف csv الذي نريده.

نحن ننفذ الكود

python pdftocsv.py

لاحظ أنني استخدمت python ، أي أنني أخبرها بتشغيلها باستخدام python 2 وليس باستخدام python3 التي فشلت. وهذا كل شيء إذا لم يُرجع أي خطأ ، فلدينا بالفعل.

قم بتشغيل Tabula في بيئة تطوير Anaconda

لقد أضفنا 3 أسطر أخرى إلى الملف للتحكم في وقت التشغيل. في النهاية تركنا ملف pdftocsv.py كملف

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

المزيد من الخيارات من Tabula

المزيد من الأمثلة على الأشياء التي يمكننا القيام بها. هناك العديد من الخيارات ، فمن الأفضل أن تذهب من خلال مستودع Github الرسمي الذي تركته

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

ومن دون شك أحد أكثر الأشياء المفيدة لتحويل جميع ملفات PDF و JSON وما إلى ذلك في الدليل.

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

مع هذا يمكننا أتمتة المهام التي كانت لولا ذلك طويلة ومملة. في النهاية هذا هو أحد أسباب استخدام هذه المكتبة.

تحويل قوات الدفاع الشعبي إلى إكسل على الإنترنت

إذا كان ما نريده هو ببساطة تحويل ملف ، واستخراج البيانات من الجدول من PDF إلى Excel أو Librecalc أو ما شابه ، فليس من الضروري تعقيده كثيرًا. هناك أدوات متاحة للقيام بذلك ، بعضها لتثبيته والبعض الآخر لإنجاز المهمة عبر الإنترنت.

لقد جربت هاتين الأداتين عبر الإنترنت وهما يعملان جيدًا.

ضع في اعتبارك أن هذه ليست وظيفة آلية ، وبالتالي فإن دراسة هذه الأدوات لم تكن شاملة. أنا أعلق عليها فقط لأولئك الذين قد يكونون مهتمين.

الطريقة الكلاسيكية

ولدينا دائمًا الطريقة الكلاسيكية ، وهي الطريقة الأكثر قذارة وتكلفة ، ولكنها في النهاية تعد خيارًا إذا كان هناك القليل من العمل.

انسخ خلايا الجدول من ملف pdf والصقها في جدول البيانات الخاص بنا.

ترك تعليق