Batchbehandling af rapporter
Generér rapporter automatisk
Batchbehandling af rapporter er en gratis Python Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Python Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Python Academy-kurset indeholder 4 lektioner i alt.
Automatisering af gentagne rapporter
Den største gevinst ved openpyxl er automatisering: Du kan generere dusinvis af lignende rapporter uden manuelt arbejde. Det kan for eksempel være månedlige salgsark pr. region eller en opsummeringsfil pr. kunde.
Mønsteret er: gennemløb datagrupperne, opbyg en projektmappe for hver gruppe, og gem den med et unikt navn.
Gruppering af data
Ved masseoprettelse af rapporter begynder du med at gruppere poster, for eksempel efter region. Standardfunktioner i Python håndterer dette enkelt, før noget Excel-arbejde begynder.
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))Én fil pr. gruppe
For hver gruppe opretter du en projektmappe, skriver rækkerne og gemmer den med et navn, der er afledt af gruppenøglen. Løkkens indhold er den samme kode, som du skrev til en enkelt rapport, blot gentaget.
Sikre filnavne
Gruppenøgler kan indeholde tegn, der er ugyldige i filnavne. Rens dem først, så gemningen aldrig mislykkes. Det er den samme slugify-idé, som bruges andre steder.
import re
name = 'North/West Region 2024'
safe = re.sub(r'[^A-Za-z0-9]+', '_', name).strip('_')
print('report_' + safe + '.xlsx')En genanvendelig skabelonfunktion
Saml rapportlayoutet i én funktion, der tager data og returnerer en projektmappe. Når du kalder den i løkken, forbliver alle rapporter ensartede, og koden følger DRY-princippet (gentag ikke dig selv).
Funktionen indstiller overskrifter, skriver rækker, tilføjer totaler og typografier og returnerer derefter wb.
Tilføjelse af en opsummeringsrække
De fleste rapporter slutter med totaler. Beregn aggregater i Python eller med en Excel-formel, og skriv dem som den sidste række. Her beregner vi opsummeringsværdierne.
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)Flere ark i én fil
Nogle gange er én fil med en fane pr. gruppe bedre end mange filer. Gå grupperne igennem, og kald wb.create_sheet(title=group_name), så hver gruppe skrives til sin egen fane. Gem én gang til sidst.
Organisering af resultatmapper
Skriv rapporter i en datomærket resultatmappe, så kørsler ikke overskriver hinanden. Brug os.makedirs(path, exist_ok=True) til at oprette den sikkert, og føj derefter filnavnene til den.
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)Fejlhåndtering i batchkørsler
I en lang batchkørsel bør én fejlbehæftet gruppe ikke stoppe resten. Omslut hver rapport med try/except, registrer fejlen, og fortsæt. En delvis kørsel, der bliver færdig, er bedre end en fuld kørsel, der går ned halvvejs.
Planlægning af jobbet
Når scriptet fungerer, skal du planlægge det (med cron, Task Scheduler eller et CI-job) til at køre hver nat eller hver måned. Den samme kode producerer derefter automatisk friske rapporter uden menneskelig indblanding.
Registrering af fremdrift
Lange batchkørsler har gavn af oplysninger om fremdriften. Udskriv eller registrer, hvilken gruppe der behandles, og hvor mange der er tilbage, så du kan skelne mellem en langsom kørsel og en kørsel, der er gået i stå. En simpel tæller op mod det samlede antal er nok.
Logning giver også en oversigt over, hvilke rapporter der lykkedes, hvis du kun skal køre fejlene igen.
Hurtigt tjek
Afprøv din viden om automatisering af batchkørsler.
Opsamling
Du kan nu automatisere rapportgenerering:
- Gruppér data, og gå derefter grupperne igennem for at oprette én projektmappe (eller ét ark) pr. gruppe
- Gør layoutet til en genanvendelig skabelonfunktion
- Rens filnavne, og skriv i datomærkede resultatmapper
- Tilføj opsummeringsrækker, omslut hver rapport med try/except, og planlæg scriptet
Det forvandler timers manuelt regnearksarbejde til et job, der køres med én kommando.
Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 76
- Lektioner
- 320
Ofte stillede spørgsmål
Er lektionen “Batchbehandling af rapporter” gratis?
Ja — hele teksten til “Batchbehandling af rapporter” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Python Academy-kurset, skal du opgradere til CoddyKit PRO. Python Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Batchbehandling af rapporter”?
Generér rapporter automatisk Du øver dig i Python Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Python Academy?
Der kræves ingen tidligere erfaring. Python Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Batchbehandling af rapporter”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Python Academy-lektion?
Ja. Alle Python Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Læsning af workbooks
- Skrivning og formatering af celler
- Formler og diagrammer
- Batchbehandling af rapporter