Python Academy · Oppitunti

Raporttien eräkäsittely

Luo raportteja automaattisesti

Oppitunti 4/413 vaihetta

Raporttien eräkäsittely on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 4 oppituntia.

Toistuvien raporttien automatisointi

openpyxl:n todellinen hyöty on automatisoinnissa: voit luoda kymmeniä samankaltaisia raportteja ilman manuaalista työtä. Kyse voi olla esimerkiksi aluekohtaisista kuukausittaisista myyntitaulukoista tai asiakaskohtaisista yhteenvetotiedostoista.

Toimintamalli on seuraava: käy dataryhmät silmukassa läpi, luo jokaiselle oma työkirja ja tallenna se yksilöllisellä nimellä.

Datan ryhmittely

Raporttien eräajo alkaa tietueiden ryhmittelyllä, esimerkiksi alueen perusteella. Tavallinen Python käsittelee tämän siististi ennen Excel-toimintojen aloittamista.

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

Yksi tiedosto ryhmää kohden

Luo jokaiselle ryhmälle työkirja, kirjoita rivit ja tallenna se ryhmäavaimesta johdettuun nimeen. Silmukan runko on sama koodi, jonka kirjoitit yksittäistä raporttia varten, mutta nyt se toistetaan.

Turvalliset tiedostonimet

Ryhmäavaimet voivat sisältää tiedostonimissä kiellettyjä merkkejä. Puhdista ne ensin, jotta tallennus ei koskaan epäonnistu. Tämä on sama slugify-ajatus, jota käytetään muuallakin.

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

Uudelleenkäytettävä mallifunktio

Kokoa raportin asettelu yhteen funktioon, joka ottaa datan vastaan ja palauttaa työkirjan. Kun kutsut sitä silmukassa, kaikki raportit pysyvät yhdenmukaisina ja koodi DRY-periaatteen mukaisena (älä toista itseäsi).

Funktio määrittäisi otsikot, kirjoittaisi rivit, lisäisi summat ja tyylit sekä palauttaisi kohteen wb.

Yhteenvetorivin lisääminen

Useimpien raporttien lopussa ovat summat. Laske aggregaatit Pythonilla tai Excel-kaavalla ja kirjoita ne viimeiseksi riviksi. Tässä lasketaan yhteenvetoarvot.

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)

Useita laskentataulukoita yhdessä tiedostossa

Joskus yksi tiedosto, jossa on ryhmälle oma välilehti, on parempi kuin useat tiedostot. Käykää ryhmät silmukassa läpi ja kutsukaa wb.create_sheet(title=group_name)-metodia kirjoittaaksenne kunkin ryhmän omalle välilehdelleen. Tallentakaa kerran lopuksi.

Tulostekansioiden järjestäminen

Kirjoittakaa raportit päivämäärällä nimettyyn tulostehakemistoon, jotta ajot eivät korvaa toisiaan. Luokaa hakemisto turvallisesti komennolla os.makedirs(path, exist_ok=True) ja liittäkää tiedostonimet siihen.

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)

Virheiden käsittely eräajoissa

Pitkässä eräajossa yhden virheellisen ryhmän ei pitäisi pysäyttää muita. Käsitelkää kukin raportti try/except-rakenteella, kirjatkaa virhe lokiin ja jatkakaa. Osittain onnistunut loppuun suoritettu ajo on parempi kuin kokonaan epäonnistuva ajo, joka kaatuu kesken.

Työn ajastaminen

Kun skripti toimii, ajastakaa se cronin, Task Schedulerin tai CI-työn avulla suoritettavaksi öisin tai kuukausittain. Sama koodi tuottaa silloin uudet raportit automaattisesti ilman ihmisen osallistumista.

Edistymisen kirjaaminen

Pitkistä eräajoista on hyötyä edistymisen tulostamisesta. Tulostakaa tai kirjatkaa lokiin, mitä ryhmää käsitellään ja kuinka monta ryhmää on jäljellä, jotta voitte erottaa hitaan ajon jumiutuneesta. Yksinkertainen kokonaismäärään suhteutettu laskuri riittää.

Lokitus antaa myös tiedot siitä, mitkä raportit onnistuivat, jos tarvitsette ajaa uudelleen vain epäonnistuneet.

Pikatarkistus

Testatkaa eräajojen automatisointia koskevat tietonne.

Kertaus

Voitte nyt automatisoida raporttien luonnin:

  • Ryhmitelkää data ja luokaa silmukassa yksi työkirja (tai yksi välilehti) ryhmää kohden
  • Siirtäkää asettelu uudelleenkäytettävään mallifunktioon
  • Muokatkaa tiedostonimet turvallisiksi ja kirjoittakaa tiedostot päivämäärällä nimettyihin tulostekansioihin
  • Lisätkää yhteenvetorivit, käsitelkää kukin raportti try/except-rakenteella ja ajastakaa skripti

Näin tuntikausien manuaalinen taulukkolaskentatyö muuttuu yhden komennon työksi.

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
76
Oppitunnit
320

Usein kysytyt kysymykset

Onko oppitunti ”Raporttien eräkäsittely” ilmainen?

Kyllä – oppitunnin ”Raporttien eräkäsittely” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Raporttien eräkäsittely”?

Luo raportteja automaattisesti Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Raporttien eräkäsittely”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Python Academy-oppitunnilla?

Kyllä. Jokainen Python Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Työkirjojen lukeminen
  2. Solujen kirjoittaminen ja tyylittely
  3. Kaavat ja kaaviot
  4. Raporttien eräkäsittely
← Takaisin: Python Academy