W automatyzacji procesów biznesowych często zachodzi potrzeba wygenerowania końcowego raportu w formacie Excel. Tego typu pliki są czytelne, łatwe do udostępniania i pozwalają na dalsze przetwarzanie danych. Jeżeli nasza automatyzacja jest oparta na Pythonie, mamy kilka metod na wygenerowanie pliku Excel. Niedawno omawialiśmy, jak takie zadanie można zrealizować w języku C# (przeczytaj więcej tutaj), teraz przyjrzyjmy jak wygląda generowanie Excel w Pythonie.
Dlaczego warto generować pliki Excel w Pythonie?
Python oferuje bogaty ekosystem bibliotek, które umożliwiają efektywne tworzenie plików Excel. Wybór odpowiedniej metody zależy od wymagań projektu, takich jak:
- czy musimy generować duże pliki,
- czy plik wymaga formatowania (np. kolory, wykresy),
- czy musimy obsłużyć zaawansowane funkcje Excela, takie jak makra.
Dostępne metody generowania plików Excel w Pythonie
1. Biblioteka openpyxl
openpyxl to jedna z najpopularniejszych bibliotek do pracy z plikami Excel w formacie .xlsx i .xlsm.
Zalety:
- Umożliwia tworzenie nowych arkuszy oraz edytowanie istniejących plików.
- Obsługuje zaawansowane funkcje, takie jak stylowanie komórek, dodawanie wykresów czy definiowanie formuł.
Przykład:
from openpyxl import Workbook
# Tworzenie nowego pliku Excel
wb = Workbook()
ws = wb.active
# Dodawanie danych
ws['A1'] = "Raport"
ws['A2'] = "Dane"
ws['B2'] = 123
# Zapis pliku
wb.save("raport.xlsx")2. Biblioteka pandas
Biblioteka pandas jest często wykorzystywana do analizy danych, ale świetnie sprawdza się również przy generowaniu plików Excel. W połączeniu z openpyxl umożliwia szybkie eksportowanie tabel danych do Excela.
Zalety:
- Proste eksportowanie dużych zbiorów danych.
- Integracja z narzędziami do analizy danych.
Przykład:
import pandas as pd
# Tworzenie DataFrame
data = {'Imię': ['Anna', 'Jan'], 'Wiek': [28, 34]}
df = pd.DataFrame(data)
# Eksport do Excela
df.to_excel("dane.xlsx", index=False)3. Biblioteka xlsxwriter
Xlsxwriter jest dedykowana do generowania plików Excel z zaawansowanym formatowaniem.
Zalety:
- Obsługuje szeroki zakres funkcji, takich jak formatowanie komórek, tabele, wykresy i formuły.
- Świetnie nadaje się do tworzenia raportów wymagających estetycznego wyglądu.
Przykład:
import xlsxwriter
# Tworzenie nowego pliku Excel
workbook = xlsxwriter.Workbook('raport.xlsx')
worksheet = workbook.add_worksheet()
# Dodawanie danych z formatowaniem
worksheet.write('A1', 'Imię')
worksheet.write('B1', 'Wiek')
worksheet.write('A2', 'Anna')
worksheet.write('B2', 28)
worksheet.write('A3', 'Jan')
worksheet.write('B3', 34)
# Zapis pliku
workbook.close()4. Biblioteka pyexcel
pyexcel to wszechstronne narzędzie, które obsługuje różne formaty plików (m.in. Excel, CSV). Jest łatwe w użyciu, ale oferuje mniejsze możliwości stylizacyjne.
Zalety:
- Obsługa wielu formatów plików.
- Prosta w użyciu do podstawowych zadań.
Przykład:
from pyexcel import save_as # Dane data = [['Imię', 'Wiek'], ['Anna', 28], ['Jan', 34]] # Zapis do pliku Excel save_as(array=data, dest_file_name="dane.xlsx")
Porównanie metod
| Biblioteka | Formatowanie | Obsługa wykresów | Szybkość dla dużych danych | Łatwość użycia |
|---|---|---|---|---|
openpyxl | Tak | Tak | Średnia | Wysoka |
pandas | Nie | Nie | Bardzo wysoka | Bardzo wysoka |
xlsxwriter | Tak | Tak | Wysoka | Średnia |
pyexcel | Nie | Nie | Wysoka | Bardzo wysoka |
Którą metodę wybrać?
- Do prostych raportów i szybkiego eksportu danych:
pandaslubpyexcel. - Do zaawansowanego formatowania:
openpyxllubxlsxwriter. - Gdy potrzebujesz wielu formatów wyjściowych:
pyexcel.
Podsumowanie
Python oferuje wiele narzędzi do generowania plików Excel, co sprawia, że można dostosować rozwiązanie do specyficznych potrzeb projektu. Wybór odpowiedniej biblioteki zależy od wymagań, takich jak potrzeba zaawansowanego formatowania czy szybkości działania dla dużych zbiorów danych. Jeśli interesują Cię podobne zagadnienia w innych językach programowania, polecamy nasz artykuł o generowaniu plików Excel w C# (przeczytaj tutaj). Generowanie Excel w Pythonie wydaje się prostsze niż w C# prawda?






