Python Academy · Lektion

Batchbehandling af rapporter

Generér rapporter automatisk

Lektion 4 af 413 trin

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.

Gratis at komme i gang

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

  1. Læsning af workbooks
  2. Skrivning og formatering af celler
  3. Formler og diagrammer
  4. Batchbehandling af rapporter
← Tilbage til Python Academy