Openpyxl – czyli Excel w Python’ie #1: Instalacja i zapis do pliku

Pomimo ogromnej ilości nowego oprogramowania do kumulowania wszelkiego rodzaju danych, Excel nie traci na popularności. Wiele narzędzi pozwala wygenerować raporty w tym formacie. Co, gdy dane do obrobienia dostarczone są w Excelu?

Openpyxl - czyli Excel w Python'ie

Openpyxl - czyli Excel w Python'ie


Pomimo ogromnej ilości nowego oprogramowania do kumulowania wszelkiego rodzaju danych, Excel nie traci na popularności. Wiele narzędzi pozwala wygenerować raporty w tym formacie. Co więc, gdy informacje do obrobienia dostarczone są w Excelu? Co, gdy niezbędne dane o tym, jak lub jakie testy mają być wykonane, muszą być wyciągnięte prosto z arkusza, lub sami musimy w jakimś celu wygenerować Excel wprost z naszych testów? Rozwiązaniem powyższych problemów jest Python’owudostępnia moduł Openpyxl, który służy do obsługi plików Excel bez udziału zewnętrznego oprogramowania.

Moduł Openpyxl

Biblioteka Openpyxl, która służy do obsługi plików Excelbez udziału zewnętrznego oprogramowania. Nie potrzebujemy mieć zainstalowanego Microsoft Office lub nawet darmowego LibreOffice. Wystarczy tylko zainstalować odpowiednią bibliotekę za pomocą pip

pip install openpyxl

Biblioteka Openpyxl służy do zapisywania lub odczytywania danych w pliku programu Excel i wielu innych zadań, takich jak np. generowanie wykresów, lub wstawianie formuł. Plik programu Excel (najczęściej spotykanych z rozszerzeniem xls i xlsx), którego używamy do operacji, nazywa się skoroszyt, który zawiera co najmniej jeden arkusz (maksymalnie kilkadziesiąt arkuszy).

Tworzenie pliku

Zacznijmy od zaimportowania biblioteki i zdefiniowania nowego skoroszytu (Workbook). Co najmniej jeden arkusz (sheet) jest zawsze dostępny w skoroszycie:

from openpyxl import Workbook
 
wb = Workbook()
 
sheet = wb.active

Arkusze składają się z rzędów rozpoczynających się od i kolumn rozpoczynających się od A. Wiersz i kolumna razem tworzą siatkę komórek, która przechowuje dane. Mogą być dowolnego typu, takie jak np. ciąg liczbowy. Openpyxl zapewnia elastyczność w odczycie i zapisie danych z pojedynczej komórki. Gdy już zdefiniowaliśmy arkusz, na którym będziemy pracować (sheet). Mamy też wiedzę jak odnieść się do konkretnej komórki, to możemy coś w niej zapisać: 

sheet["A1"] = 'Test1'

Możemy też podać bezpośrednio za pomocą metody cell, jaki rząd i jaka kolumna ma przyjąć nową wartość:

sheet.cell(row=3, column=2).value = 32

Kolejnym sposobem dodawania danych do arkusza jest przypominający dodawanie danych do listy – metoda append(). Wystarczy, że stworzysz grupę danych i dodasz je do arkusza właśnie, za pocą tej metody. Należy pamiętać że kolejne append’y będą rozpoczynane od kolejnego wiersza:

sheet.append((1, 2, 3))
sheet.append((4, 5, 6))

Jak widzimy powyżej, każdy kolejny append skutkuje dodaniem kolejnej paczki danych w następnym wierszu. Ten system choć może pomóc w masowym dodawaniu danych jest mało elastyczny. Przykładowo nie wrócimy w nim do poprzedniego wiersza, a żeby dodać puste pola musimy dodawać pusty string.

Czas, aby powyższe przykłady faktycznie wprowadzić w życie. Aby to zrobić, użyjemy metody save na naszym wywołanym wcześniej ‚skoroszycie‚, wybierając, jak ma nazywać się plik, do którego zapiszemy dane:

wb.save("excel_file.xlsx")

W następnej części tej serii Openpyxl – czyli Excel w Python’ie, przybliżę temat odczytu danych z pliku, a także ich przetwarzaniem.

close

Newsletter