U mnogim firmama isti scenarij se ponavlja svakog ponedjeljka: neko preuzme izvoze iz knjigovodstvenog programa, web shopa ili kase, otvori pet Excel fajlova, kopira kolone, popravi datume, napravi pivot tabelu i pošalje izvještaj šefu. Dva sata posla — svake sedmice, uz realnu šansu za grešku.
Taj posao je savršen kandidat za automatizaciju. U nastavku je konkretan primjer kako ga uradi Python skripta.
Šta ćemo automatizovati
Primjer: firma ima nekoliko poslovnica i iz programa dobija izvoze prodaje u CSV i Excel formatu. Cilj je jedan Excel fajl sa tri lista:
- Po poslovnici — ukupna prodaja po poslovnici, sortirano od najveće;
- Po sedmici — prodaja po sedmicama i poslovnicama;
- Svi podaci — očišćeni, spojeni podaci za dalju provjeru.
Šta vam treba
- Python (besplatan, s python.org),
- biblioteke pandas (obrada tabela) i openpyxl (pisanje .xlsx fajlova), instalirane jednom naredbom:
pip install pandas openpyxl, - folder s izvozima, npr.
izvozi/.
Kompletan primjer koda
from pathlib import Path
from datetime import date
import pandas as pd
ULAZ = Path("izvozi") # folder s izvozima iz programa
IZLAZ = Path("izvjestaji") # ovdje nastaje gotov izvještaj
IZLAZ.mkdir(exist_ok=True)
# 1) Učitaj sve izvoze (CSV i Excel) u jednu tabelu
dijelovi = []
for fajl in sorted(ULAZ.glob("*")):
if fajl.suffix == ".csv":
df = pd.read_csv(fajl, sep=";", decimal=",", encoding="utf-8")
elif fajl.suffix in (".xlsx", ".xls"):
df = pd.read_excel(fajl)
else:
continue
df["Izvor"] = fajl.name
dijelovi.append(df)
prodaja = pd.concat(dijelovi, ignore_index=True)
# 2) Očisti podatke
prodaja["Datum"] = pd.to_datetime(prodaja["Datum"], dayfirst=True)
prodaja["Poslovnica"] = prodaja["Poslovnica"].str.strip().str.title()
prodaja = prodaja.dropna(subset=["Iznos"]).drop_duplicates()
# 3) Sažeci: po poslovnici i po sedmici
po_poslovnici = (prodaja.groupby("Poslovnica", as_index=False)["Iznos"]
.sum().sort_values("Iznos", ascending=False))
po_sedmici = prodaja.pivot_table(index=prodaja["Datum"].dt.isocalendar().week,
columns="Poslovnica", values="Iznos",
aggfunc="sum", fill_value=0)
# 4) Upiši gotov izvještaj — svaka tabela na svoj list
fajl = IZLAZ / f"prodaja_{date.today():%Y-%m-%d}.xlsx"
with pd.ExcelWriter(fajl, engine="openpyxl") as xls:
po_poslovnici.to_excel(xls, sheet_name="Po poslovnici", index=False)
po_sedmici.to_excel(xls, sheet_name="Po sedmici")
prodaja.to_excel(xls, sheet_name="Svi podaci", index=False)
print("Izvještaj spreman:", fajl)
Šta skripta radi, korak po korak
1. Spajanje izvoza
Skripta prolazi kroz sve fajlove u folderu, čita CSV i Excel fajlove i spaja ih u jednu tabelu. Kolona Izvor pamti iz kojeg fajla je red došao — korisno kad treba pronaći grešku. Parametri sep=";" i decimal="," su tu jer izvozi iz domaćih programa često koriste tačku-zarez i decimalni zarez.
2. Čišćenje podataka
Datumi u formatu dan.mjesec.godina pretvaraju se u prave datume, nazivi poslovnica se ujednačavaju (razmaci, velika i mala slova), a prazni i duplirani redovi se uklanjaju. Upravo ovdje ručni rad najčešće griješi.
3. Sažeci
groupby sabira prodaju po poslovnici, a pivot_table pravi tabelu po sedmicama — isto što radi pivot tabela u Excelu, samo bez klikanja.
4. Gotov Excel fajl
Rezultat je običan .xlsx fajl s datumom u nazivu, koji se može otvoriti, poslati ili dalje uređivati. Uz openpyxl se mogu dodati i formatiranje, širine kolona, grafikoni ili automatsko slanje mailom.
Automatsko pokretanje
Skripta ima najveću vrijednost kad se pokreće sama:
- Windows: u Task Scheduleru napravite zadatak koji svakog ponedjeljka u 7:00 pokreće
python izvjestaj.py. - Linux server: jedan red u cronu, npr.
0 7 * * 1 python3 /putanja/izvjestaj.py.
Kad zaposleni dođe na posao, izvještaj već čeka u folderu ili u inboxu.
Kada se automatizacija isplati — a kada ne
Isplati se kad se isti posao ponavlja (sedmično ili dnevno), kad uključuje više izvora podataka i kad su greške skupe. Računica je jednostavna: dva sata sedmično su oko 100 sati godišnje.
Ne isplati se za izvještaj koji se pravi jednom godišnje ili čiji se format stalno mijenja. A za jednostavne slučajeve unutar samog Excela vrijedi pogledati i Power Query — ugrađeni alat koji može spajati i čistiti tabele bez programiranja.
Savjet iz prakse
Prije automatizacije zapišite proces korak po korak, onako kako ga zaposleni zaista radi. Polovina problema se riješi već tada — jer se pokaže koji koraci uopće nisu potrebni.
Šta dalje
Ovaj primjer je namjerno jednostavan. U stvarnim projektima skripta često preuzima podatke direktno iz programa preko API-ja ili baze, šalje izvještaj mailom, upozorava na neuobičajene vrijednosti ili puni dashboard koji se gleda u browseru. Pogledajte šta sve uključuje usluga web aplikacija i automatizacije, a za proizvodne firme i primjere iz softvera za proizvodnju.
Engimotive · Objavljeno 27. oktobra 2026.