Python Academy · Lektion

Batchbearbetning av rapporter

Generera rapporter automatiskt

Lektion 4 av 413 steg

Batchbearbetning av rapporter är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 4 lektioner.

Automatisera repetitiva rapporter

Den verkliga vinsten med openpyxl är automatisering: att generera dussintals liknande rapporter utan manuellt arbete. Tänk månadsvisa försäljningsblad per region eller en sammanfattningsfil per kund.

Mönstret är: iterera över datagrupper, skapa en arbetsbok för varje grupp och spara med ett unikt namn.

Gruppera data

Batchrapporter börjar med att poster grupperas, till exempel efter region. Standardfunktionerna i Python hanterar detta på ett tydligt sätt innan något Excel-arbete påbörjas.

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))

En fil per grupp

För varje grupp skapar ni en arbetsbok, skriver raderna och sparar den med ett namn som härleds från gruppnyckeln. Slingans kropp innehåller samma kod som ni skrev för en enda rapport, bara upprepad.

Säkra filnamn

Gruppnycklar kan innehålla tecken som är ogiltiga i filnamn. Sanera dem först så att sparandet aldrig misslyckas. Det här är samma slugify-idé som används på andra ställen.

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

En återanvändbar mallfunktion

Bryt ut rapportlayouten till en funktion som tar emot data och returnerar en arbetsbok. Att anropa den i loopen håller alla rapporter enhetliga och koden DRY (do not repeat yourself).

Funktionen skulle ange rubriker, skriva rader, lägga till summor och format och sedan returnera wb.

Lägga till en sammanfattningsrad

De flesta rapporter avslutas med summor. Beräkna aggregat i Python eller med en Excel-formel och skriv dem som den sista raden. Här beräknas sammanfattningsvärdena.

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)

Flera blad i en fil

Ibland är en fil med en flik per grupp bättre än många filer. Iterera över grupperna och anropa wb.create_sheet(title=group_name) så att varje grupp skrivs till sin egen flik. Spara en gång i slutet.

Organisera utdatamappar

Skriv rapporter till en daterad utdatamapp så att körningarna inte skriver över varandra. Använd os.makedirs(path, exist_ok=True) för att skapa den på ett säkert sätt och lägg sedan till filnamnen i sökvägen.

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)

Felhantering i batchkörningar

I en lång batchkörning bör en felaktig grupp inte stoppa resten. Omge varje rapport med try/except, logga felet och fortsätt. En delvis genomförd körning som slutförs är bättre än en fullständig körning som kraschar halvvägs.

Schemalägga jobbet

När skriptet fungerar kan du schemalägga det med cron, Task Scheduler eller ett CI-jobb så att det körs varje natt eller varje månad. Samma kod producerar då automatiskt aktuella rapporter utan att någon behöver ingripa.

Logga förloppet

Långa batchkörningar har nytta av förloppsinformation. Skriv ut eller logga vilken grupp som behandlas och hur många som återstår, så att du kan skilja en långsam körning från en som har fastnat. En enkel räknare mot det totala antalet räcker.

Loggningen ger också en förteckning över vilka rapporter som lyckades om du behöver köra om endast de misslyckade.

Snabbtest

Testa dina kunskaper om batchautomatisering.

Sammanfattning

Nu kan du automatisera rapportgenerering:

  • Gruppera data och iterera sedan genom grupperna för att skapa en arbetsbok (eller ett blad) per grupp
  • Samla layouten i en återanvändbar mallfunktion
  • Sanera filnamn och skriv till daterade utdatamappar
  • Lägg till summeringsrader, omge varje rapport med try/except och schemalägg skriptet

Detta förvandlar timmars manuellt kalkylbladsarbete till ett jobb som körs med ett enda kommando.

Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
76
Lektioner
320

Vanliga frågor

Är lektionen ”Batchbearbetning av rapporter” gratis?

Ja – hela texten till ”Batchbearbetning av rapporter” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Batchbearbetning av rapporter”?

Generera rapporter automatiskt Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Python Academy?

Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Batchbearbetning av rapporter”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Python Academy-lektionen?

Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Läsa arbetsböcker
  2. Skriva och formatera celler
  3. Formler och diagram
  4. Batchbearbetning av rapporter
← Tillbaka till Python Academy