Python Academy · Les

Rapporten batchgewijs verwerken

Genereer automatisch rapporten

Les 4 van 413 stappen

Rapporten batchgewijs verwerken is een gratis Python Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python Academy bevat in totaal 4 lessen.

Repetitieve rapporten automatiseren

De echte winst van openpyxl zit in automatisering: tientallen vergelijkbare rapporten genereren zonder handwerk. Denk aan maandelijkse verkoopbladen per regio of een samenvattingsbestand per klant.

Het patroon is: doorloop groepen gegevens, bouw voor elke groep een werkmap en sla deze op met een unieke naam.

De gegevens groeperen

Batchrapporten beginnen met het groeperen van records, bijvoorbeeld per regio. Met standaardfunctionaliteit van Python doe je dit netjes voordat er Excel-werk begint.

records = [
    {'region': 'North', 'sales': 100},
    {'region': 'South', 'sales': 80},
    {'region': 'North', 'sales': 120},
]
groups = {}
for r in records:
    groups.setdefault(r['region'], []).append(r['sales'])
for region, sales in groups.items():
    print(region, sales, 'total', sum(sales))

Eén bestand per groep

Voor elke groep maak je een werkmap, schrijf je de rijen en sla je deze op met een naam die van de groepssleutel is afgeleid. De inhoud van de lus is dezelfde code die je voor één rapport hebt geschreven, maar dan herhaald.

Veilige bestandsnamen

Groepssleutels kunnen tekens bevatten die niet zijn toegestaan in bestandsnamen. Maak ze eerst schoon, zodat het opslaan nooit mislukt. Dit is hetzelfde idee als bij slugify elders.

import re
name = 'North/West Region 2024'
safe = re.sub(r'[^A-Za-z0-9]+', '_', name).strip('_')
print('report_' + safe + '.xlsx')

Een herbruikbare sjabloonfunctie

Breng de rapportindeling onder in één functie die gegevens aanneemt en een werkmap retourneert. Door deze in de lus aan te roepen, blijven alle rapporten consistent en blijft de code DRY (herhaal jezelf niet).

De functie stelt kopteksten in, schrijft rijen, voegt totalen en opmaak toe en retourneert vervolgens wb.

Een samenvattingsrij toevoegen

De meeste rapporten eindigen met totalen. Bereken samengevoegde waarden in Python of met een Excel-formule en schrijf ze als laatste rij. Hier berekenen we de samenvattingswaarden.

sales = [100, 120, 90, 110]
summary = {
    'count': len(sales),
    'total': sum(sales),
    'average': sum(sales) / len(sales),
    'max': max(sales),
}
for k, v in summary.items():
    print(k.ljust(8), v)

Meerdere werkbladen in één bestand

Soms is één bestand met een tabblad per groep beter dan veel bestanden. Loop door de groepen en roep wb.create_sheet(title=group_name) aan, waarbij je elke groep naar een eigen tabblad schrijft. Sla aan het eind één keer op.

Uitvoermappen organiseren

Schrijf rapporten naar een gedateerde uitvoermap, zodat uitvoeringen elkaar niet overschrijven. Gebruik os.makedirs(path, exist_ok=True) om deze veilig aan te maken en voeg daarna bestandsnamen eraan toe.

import os
base = 'reports'
run_date = '2026-05-30'
out_dir = os.path.join(base, run_date)
path = os.path.join(out_dir, 'north.xlsx')
print('Would create dir:', out_dir)
print('File path:', path)

Foutafhandeling in batches

In een lange batch mag één foute groep de rest niet stoppen. Wikkel elk rapport in een try/except, registreer de fout en ga verder. Een gedeeltelijke uitvoering die wordt voltooid is beter dan een volledige uitvoering die halverwege vastloopt.

De taak plannen

Zodra het script werkt, plan je het (met cron, Task Scheduler of een CI-taak) om het elke nacht of elke maand uit te voeren. Dezelfde code levert dan automatisch actuele rapporten op, zonder menselijke tussenkomst.

Voortgang bijhouden

Lange batches hebben baat bij voortgangsuitvoer. Toon of registreer welke groep wordt verwerkt en hoeveel er nog over zijn, zodat je een trage uitvoering kunt onderscheiden van een vastgelopen uitvoering. Een eenvoudige teller die je met het totaal vergelijkt is voldoende.

Registratie geeft je ook een overzicht van welke rapporten zijn gelukt, als je alleen de mislukte rapporten opnieuw moet uitvoeren.

Snelle controle

Controleer je kennis van batchautomatisering.

Samenvatting

Je kunt nu het genereren van rapporten automatiseren:

  • Groepeer gegevens en loop vervolgens door de groepen om per groep één werkmap (of één werkblad) te maken
  • Breng de indeling onder in een herbruikbare sjabloonfunctie
  • Maak bestandsnamen veilig en schrijf naar gedateerde uitvoermappen
  • Voeg samenvattingsrijen toe, wikkel elk rapport in try/except en plan het script

Zo verander je uren handmatig werk in spreadsheets in een taak die je met één opdracht uitvoert.

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
76
Lessen
320

Veelgestelde vragen

Is de les “Rapporten batchgewijs verwerken” gratis?

Ja — de volledige tekst van “Rapporten batchgewijs verwerken” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python Academy bevat in totaal 4 lessen.

Wat leer ik in “Rapporten batchgewijs verwerken”?

Genereer automatisch rapporten Je oefent met Python Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Python Academy te beginnen?

Ervaring vooraf is niet nodig. Python Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Rapporten batchgewijs verwerken”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Python Academy?

Ja. Elke les over Python Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Werkmappen lezen
  2. Cellen schrijven en opmaken
  3. Formules en grafieken
  4. Rapporten batchgewijs verwerken
← Terug naar Python Academy