Przetwarzanie raportów wsadowych
Automatycznie generuj raporty
Przetwarzanie raportów wsadowych to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.
Automatyzowanie powtarzalnych raportów
Prawdziwa korzyść z openpyxl polega na automatyzacji: generowaniu dziesiątek podobnych raportów bez ręcznej pracy. Mogą to być na przykład miesięczne arkusze sprzedaży dla poszczególnych regionów albo plik podsumowania dla każdego klienta.
Wzorzec jest następujący: proszę przejść po grupach danych, utworzyć skoroszyt dla każdej z nich i zapisać go pod unikalną nazwą.
Grupowanie danych
Raporty wsadowe zaczynają się od pogrupowania rekordów, na przykład według regionu. Standardowe narzędzia Pythona pozwalają zrobić to w przejrzysty sposób, zanim rozpocznie się praca z Excelem.
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))Jeden plik na grupę
Dla każdej grupy należy utworzyć skoroszyt, zapisać wiersze i zapisać plik pod nazwą wyprowadzoną z klucza grupy. Treść pętli jest taka sama jak kod napisany dla pojedynczego raportu, tylko wykonywana wielokrotnie.
Bezpieczne nazwy plików
Klucze grup mogą zawierać znaki niedozwolone w nazwach plików. Proszę najpierw je oczyścić, aby zapis zawsze się powiódł. To ta sama idea funkcji slugify używana w innych miejscach.
import re
name = 'North/West Region 2024'
safe = re.sub(r'[^A-Za-z0-9]+', '_', name).strip('_')
print('report_' + safe + '.xlsx')Funkcja szablonu wielokrotnego użytku
Proszę wydzielić układ raportu do jednej funkcji, która przyjmuje dane i zwraca skoroszyt. Wywoływanie jej w pętli zapewnia spójność wszystkich raportów i pozwala zachować zasadę DRY (do not repeat yourself).
Funkcja ustawia nagłówki, zapisuje wiersze, dodaje podsumowania i style, a następnie zwraca wb.
Dodawanie wiersza podsumowania
Większość raportów kończy się podsumowaniami. Agregaty można obliczyć w Pythonie lub za pomocą formuły Excela, a następnie zapisać je w ostatnim wierszu. W tym przykładzie obliczamy wartości podsumowania.
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)Wiele arkuszy w jednym pliku
Czasami jeden plik z osobną kartą dla każdej grupy jest lepszym rozwiązaniem niż wiele plików. Proszę przejść w pętli po grupach i wywołać wb.create_sheet(title=group_name), zapisując każdą grupę na osobnej karcie. Plik należy zapisać raz, na końcu.
Organizowanie folderów wyjściowych
Raporty należy zapisywać w datowanym folderze wyjściowym, aby kolejne uruchomienia nie nadpisywały się nawzajem. Proszę użyć os.makedirs(path, exist_ok=True), aby bezpiecznie go utworzyć, a następnie dołączyć do niego nazwy plików.
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)Obsługa błędów w przetwarzaniu wsadowym
W przypadku długiego przetwarzania wsadowego jedna nieprawidłowa grupa nie powinna zatrzymywać reszty. Każdy raport należy objąć blokiem try/except, zarejestrować błąd i kontynuować działanie. Częściowe przetwarzanie, które dobiegnie końca, jest lepsze niż pełne przetwarzanie, które zakończy się awarią w połowie.
Planowanie zadania
Gdy skrypt działa poprawnie, należy zaplanować jego uruchamianie (za pomocą cron, Task Scheduler lub zadania CI) co noc albo co miesiąc. Ten sam kod będzie wtedy automatycznie tworzyć aktualne raporty bez udziału człowieka.
Rejestrowanie postępów
Długie zadania wsadowe warto uzupełnić o informacje o postępie. Należy wyświetlać lub rejestrować informację o przetwarzanej grupie i liczbie pozostałych grup, aby można było odróżnić powolne działanie od zawieszenia. Wystarczy prosty licznik względem łącznej liczby grup.
Rejestrowanie postępów zapewnia również informację o tym, które raporty zostały utworzone poprawnie, jeśli trzeba będzie ponownie uruchomić tylko te zakończone błędem.
Szybkie sprawdzenie
Proszę sprawdzić swoją wiedzę na temat automatyzacji przetwarzania wsadowego.
Podsumowanie
Potrafią już Państwo automatyzować generowanie raportów:
- Grupować dane, a następnie w pętli tworzyć jeden skoroszyt (lub jeden arkusz) dla każdej grupy
- Wydzielać układ do funkcji szablonowej wielokrotnego użytku
- Oczyszczać nazwy plików i zapisywać je w datowanych folderach wyjściowych
- Dodawać wiersze podsumowań, obejmować każdy raport blokiem try/except i planować uruchamianie skryptu
Dzięki temu wielogodzinną ręczną pracę z arkuszami kalkulacyjnymi można zamienić w zadanie uruchamiane jednym poleceniem.
Często zadawane pytania
Czy lekcja „Przetwarzanie raportów wsadowych” jest bezpłatna?
Tak — pełny tekst „Przetwarzanie raportów wsadowych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Przetwarzanie raportów wsadowych”?
Automatycznie generuj raporty Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Python Academy?
Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Przetwarzanie raportów wsadowych”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?
Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Odczytywanie skoroszytów
- Zapis i stylizowanie komórek
- Formuły i wykresy
- Przetwarzanie raportów wsadowych