Python Academy · leksjon

Partibehandling av rapporter

Generer rapporter automatisk

Leksjon 4 av 413 trinn

Partibehandling av rapporter er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.

Automatisere gjentakende rapporter

Den store gevinsten med openpyxl er automatisering: å generere dusinvis av lignende rapporter uten manuelt arbeid. Tenk på månedlige salgsark per region eller en sammendragsfil per kunde.

Mønsteret er: gå gjennom datagrupper, bygg en arbeidsbok for hver gruppe og lagre den med et unikt navn.

Gruppere dataene

Batchrapporter begynner med at postene grupperes, for eksempel etter region. Standardfunksjonalitet i Python håndterer dette ryddig før noe Excel-arbeid begynner.

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 per gruppe

For hver gruppe oppretter De en arbeidsbok, skriver radene og lagrer den med et navn som bygger på gruppenøkkelen. Løkkekroppen er den samme koden som De skrev for én enkelt rapport, bare gjentatt.

Sikre filnavn

Gruppenøkler kan inneholde tegn som er ugyldige i filnavn. Rens dem først slik at lagringen aldri mislykkes. Dette er den samme ideen som å lage slugs, brukt andre steder.

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

En gjenbrukbar malfunksjon

Legg rapportoppsettet i én funksjon som tar data og returnerer en arbeidsbok. Når De kaller den i løkken, blir alle rapportene konsekvente, og koden følger DRY-prinsippet (ikke gjenta deg selv).

Funksjonen skal angi kolonneoverskrifter, skrive rader, legge til summer og stiler, og deretter returnere wb.

Legge til en sammendragsrad

De fleste rapporter avsluttes med summer. Beregn aggregatene i Python eller med en Excel-formel, og skriv dem som den siste raden. Her beregner vi sammendragsverdiene.

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

Noen ganger er én fil med én fane per gruppe bedre enn mange filer. Gå gjennom gruppene i en løkke og kall wb.create_sheet(title=group_name) for å skrive hver gruppe til sin egen fane. Lagre én gang til slutt.

Organisere utdatamapper

Skriv rapporter til en datert utdatamappe, slik at kjøringer ikke overskriver hverandre. Bruk os.makedirs(path, exist_ok=True) for å opprette mappen på en trygg måte, og legg deretter filnavnene til denne banen.

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)

Feilhåndtering i batchjobber

I en lang batchjobb bør ikke én feil i en gruppe stoppe resten. Pakk hver rapport inn i en try/except-blokk, logg feilen og fortsett. En delvis kjøring som fullføres, er bedre enn en full kjøring som krasjer halvveis.

Planlegge jobben

Når skriptet fungerer, kan De planlegge det (med cron, Task Scheduler eller en CI-jobb) til å kjøre hver natt eller hver måned. Den samme koden produserer da automatisk oppdaterte rapporter uten menneskelig innblanding.

Logge fremdrift

Lange batchjobber har nytte av fremdriftsinformasjon. Skriv ut eller logg hvilken gruppe som behandles, og hvor mange som gjenstår, slik at De kan skille en treg kjøring fra en som har satt seg fast. En enkel teller opp mot totalen er nok.

Logging gir også en oversikt over hvilke rapporter som ble fullført, hvis De må kjøre bare de mislykkede på nytt.

Hurtigsjekk

Test kunnskapene Deres om automatisering av batchjobber.

Oppsummering

De kan nå automatisere rapportgenerering:

  • Gruppér dataene, og gå deretter gjennom dem i en løkke som oppretter én arbeidsbok (eller ett ark) per gruppe
  • Gjør utformingen til en gjenbrukbar malfunksjon
  • Rens filnavn, og skriv til daterte utdatamapper
  • Legg til sammendragsrader, pakk hver rapport inn i try/except, og planlegg skriptet

Dette gjør timevis med manuelt regnearkarbeid om til en jobb som kan kjøres med én kommando.

Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «Partibehandling av rapporter» gratis?

Ja – hele teksten i «Partibehandling av rapporter» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Partibehandling av rapporter»?

Generer rapporter automatisk Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Partibehandling av rapporter»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?

Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Lese arbeidsbøker
  2. Skrive og formatere celler
  3. Formler og diagrammer
  4. Partibehandling av rapporter
← Tilbake til Python Academy