PDF tablolarından Excel'eGeliştirme ve Özelleştirme

PDF raporlarınızdaki, fiyat listelerinizdeki ya da hesap dökümlerinizdeki tabloları Excel'e aktaran bir Python betiği

Genellikle 15 dakika içinde hazırRevizyonlar dahilKalite kontrolü
Paketler
Ödeme korumasıAyrıntılar
  • Paket kapsamındaki revizyonlar ücretsizdir.
  • Teslimattan sonraki 3 gün içinde yanıt vermezseniz iş otomatik olarak onaylanır.

Para, ödeme yaptığınızda bloke edilir ve yalnızca işi onayladığınızda aktarılır.

PDF raporlarınızdaki, fiyat listelerinizdeki ya da hesap dökümlerinizdeki tabloları Excel'e aktaran bir Python betiği

Örnek sonuç

Standart paket için örnek

Merging the monthly sales files of 9 shops into one Excel report

How it is run

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Folder: sales/2026-10, 9 files found
2026-11-02 09:14:03 INFO  shop-01.csv: 1,284 rows
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 rows
2026-11-02 09:14:04 WARN  shop-07.csv: 3 rows without a price skipped (lines 88, 412, 913)
2026-11-02 09:14:05 INFO  Done: 10,412 rows -> report-2026-10.xlsx (sheets "Sales" and "Totals")

Settings, not code

The column names of each shop live in settings.ini, so a new shop or a renamed column is a line there:

[columns]
date = Date, Sale date, Day
product = Product, Item, Name
quantity = Qty, Quantity, Pcs
price = Price, Unit price

A part of the code

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Reads one shop's file and gives it the report's column names."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: no column for '{name}' (looked for {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Files: a ZIP archive with merge_sales.py (310 lines), settings.ini, requirements.txt and a README with installing Python, running the script and what each message in the log means. The client runs it on their own computer.

Client: a small chain of 9 stationery shops; each shop sends its sales for the month as a CSV or Excel file, with slightly different column names. Task: one script that reads every file in a folder, brings the columns to one shape, and writes a single Excel report with all sales and a sheet of totals by shop.

Müşteri ve tüm ayrıntılar kurgusaldır.

Bu hizmet hakkında

Tedarikçi fiyat listeleri, banka ya da pazar yeri raporları ve stok listeleri çoğu zaman yalnızca PDF olarak gelir ve tablolarını Excel'e kopyalamak sütunları bozar. Bu Python betiği PDF'lerinizin tablolarını okur ve sütunları yerinde olacak şekilde Excel'e ya da CSV'ye yazar: birçok sayfaya yayılan bir tabloyu birleştirir, tekrarlanan başlık satırlarını ve sayfa alt bilgilerini atar ve Standart paketten itibaren 1 234,50 ya da (120.00) gibi değerleri gerçek sayılara, tarihleri de tarihe dönüştürür. Dosyalarınızın düzenine göre ayarlanır, bu yüzden bir iki tipik PDF ya da uydurma rakamlarla aynı düzeni gönderin. PDF'de gerçek metin olmalıdır; bir programdan kaydedilen dosyaların çoğunda vardır. Taramalar ve kâğıt fotoğrafları metin tanıma gerektirir ve bu dahil değildir. Betiği kendiniz çalıştırır ve toplamları kontrol edersiniz.

Neler dahil

  • Neler alırsınızPython betiğini, adım adım talimatlar içeren bir README dosyasını ve Standart paketten itibaren sütun adlarını ve sayfaları içeren bir ayar dosyasını barındıran bir ZIP arşivi; kod sipariş sayfasında da gösterilir.
  • Düzeninize göre ayarlanırGönderdiğiniz örnek dosyalar üzerinde yazılır ve denenir
  • Sütunlar yerindePDF'deki bir satır Excel'de bir satırdır
  • Birçok sayfa birleştirilirUzun bir tablo, başlıklar tekrarlanmadan tek bir sayfa olur
  • Gerçek sayılarStandart paketten itibaren toplayıp sıralayabileceğiniz tutarlar ve tarihler
  • Okunabilir kodYorumlarla; düzen değişirse ayarlamak kolay

Nasıl çalışır

  1. 1
    ÖrneklerBir iki tipik PDF gönderir ve ihtiyacınız olan tabloyu gösterirsiniz
  2. 2
    KodBetiği o düzene göre ve çalıştırma kılavuzunu yazarız
  3. 3
    DeneyinDosyalarınızda çalıştırır ve toplamları PDF ile karşılaştırırsınız
  4. 4
    DeğişikliklerPaketiniz kapsamında değişiklik ister, varsa hata mesajını gönderirsiniz

Sizden neler gerekiyor

Aldığınız türden bir iki tipik PDF (ya da uydurma adlar ve rakamlarla aynı düzen), hangi sayfalardaki hangi tabloya ihtiyacınız olduğu ve Excel'de istediğiniz sütunlar. İçlerinde sayıların nasıl yazıldığı (virgüller, boşluklar, eksi işaretleri ya da parantezler) ve tarih formatı. Tüm dosyalarınızın aynı düzende mi olduğu yoksa birkaç tür mü olduğu, yaklaşık kaç dosya işlediğiniz ve sisteminiz: Windows, macOS ya da Linux.

Size soracaklarımız:

  • PDF'ler nedir?
  • Excel'de hangi sütunlara ihtiyacınız var?
  • Tüm dosyalarınız aynı mı görünüyor?
  • Nerede çalışacak?

Paketleri karşılaştırın

PaketlerTemelTek tablo düzeni$16StandartAyarlı tablolar$33PremiumTablo aracı$67
Teslim süresi1 gün2 gün3 gün
Revizyonlar123
Koden fazla 150 satıren fazla 400 satıren fazla 1.000 satır
Kod dosyası1en fazla 3en fazla 8
Ayar dosyasıHayırEvetEvet
Anlaşılır hata mesajları ve logHayırEvetEvet
Çalıştırma seçenekleri ve zamanlanmış çalıştırma kılavuzuHayırHayırEvet
Kurulum ve çalıştırma kılavuzu (README)EvetEvetEvet
DilPythonPythonPython
Sipariş ver TemelSipariş ver StandartSipariş ver Premium

Ödeme koruması

Sipariş verirken ödersiniz, ancak para yalnızca onaylanan iş için aktarılır.

  • Sabit fiyatPaket fiyatı, ödeme yaptıktan sonra değişmez.
  • Para bloke edilirÖdeme yaptığınızda tutar yalnızca bloke edilir. İşi onayladığınızda hizmete aktarılır.
  • Teslimattan önce kontrolHer sonuç size ulaşmadan önce kalite kontrolünden geçer ve onaylamadan önce sipariş sayfasında görürsünüz.
  • Ücretsiz revizyonlarBrifiniz kapsamında, paketin izin verdiği sayıda değişiklik isteyin.
  • 3 gün sonra onayTeslimattan sonraki 3 gün içinde işi onaylamaz veya değişiklik istemezseniz iş otomatik olarak onaylanır. Teslimattan sonra sipariş sohbetine yazarsanız sipariş bekletilir; yanıt verdikten sonra 3 günlük süreyi yeniden başlatabiliriz ve bunu sohbette bildiririz.
  • Yeniden yapım veya tam iadeSonuç brifinize uymuyorsa ve revizyonlar sorunu çözmediyse ya da iş teslim süresinin iki katından uzun sürerse sipariş sohbetine yazın: işi yeniden yaparız veya ödemenin tamamını iade ederiz.
Nasıl çalışır →

Sorular ve yanıtlar

Her PDF ile çalışır mı?

Örnek dosyalarınızın düzeni için yapılmıştır. Tedarikçiniz düzeni değiştirirse betiğin ayarlanması gerekebilir. Taramalar gibi gerçek metin içermeyen PDF'ler kapsam dışıdır.

PDF'mde gerçek metin olup olmadığını nasıl anlarım?

Açın ve fareyle bir kelimeyi seçmeyi deneyin. Seçip kopyalayabiliyorsanız metin gerçektir. Bütün sayfa tek bir resim olarak seçiliyorsa bu bir taramadır.

Yanılabilir mi?

Evet, PDF tabloları tablo olarak saklanmaz, bu yüzden tuhaf bir satır bir sırayı bozabilir. Bu nedenle betik emin olmadığı sayfaları log kaydına yazar; sonucu kullanmadan önce toplamları PDF ile karşılaştırmalısınız.

Gerçek raporlar göndermem gerekiyor mu?

Hayır. Uydurma rakamlarla aynı düzen de aynı derecede işe yarar; betik daha sonra bilgisayarınızda gerçek dosyalarınız üzerinde çalışır.

Yanıtınızı bulamadınız mı?

Paketler