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

Openpyxl - czyli Excel w Python'ie (#1) Instalacja i zapis do pliku

Poziom trudności
2/5

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 Excel bez 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:

  1. from openpyxl import Workbook
  2. wb = Workbook()
  3. sheet = wb.active

Arkusze składają się z rzędów rozpoczynających się od 1 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) i mamy wiedzę jak odnieść się do konkretnej komórki, możemy coś w niej zapisać: 

  1. sheet["A1"] = 'Test1'
Openpyxl   czyli Excel w Pythonie (#1) Instalacja i zapis do pliku image

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

  1. sheet.cell(row=3, column=2).value = 32
Openpyxl   czyli Excel w Pythonie (#1) Instalacja i zapis do pliku image

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:

  1. sheet.append((1, 2, 3))
  2. sheet.append((4, 5, 6))
Openpyxl   czyli Excel w Pythonie (#1) Instalacja i zapis do pliku image

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, gdyż np. 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:

  1. 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.

Ten post ma 2 komentarzy

  1. Grzegorz

    Po co import time? To konieczne?

    1. Szymon

      Witam, dziękuję za czujność!. Tak import time nie jest konieczny w tym miejscu.
      Już poprawiłem to przeoczenie.

Dodaj komentarz