Generowanie i czytanie plików Excela w Pythonie

opis bibliotek xlrd i xlwt służących do operowania na plikach MS Excel.

Najprostszym sposobem generowania plików dla arkuszy kalkulacyjnych jest zapisywanie danych w postaci CSV. Czasami jednak potrzebujemy więcej funkcjonalności. Dostępne są dwie wieloplatformowe Pythonowe biblioteki do czytania - xlrd i tworzenia - xlwt plików Excela. Instalacja jest prosta (poprzez easy_install, lub "setup.py install").

Generowanie plików XLS nie jest skomplikowane. Oto przykład:

# -*- coding: utf-8 -*-
import xlwt

# kodowanie arkusza
book = xlwt.Workbook(encoding="utf-8")

# tworzymy dowolną ilość arkuszy (zakładek)
sheet1 = book.add_sheet("Raport zbiorczy")
sheet2 = book.add_sheet("Zestawienie wydatków")
sheet3 = book.add_sheet("Zestawienie przychodów")

# umieszczamy w nich dane
sheet1.write(0, 0, "Tutaj jakiś bardzo ważny raport")
sheet2.write(1, 10, "Wydaliśmy dużo")
sheet3.write(0, 2, "Ale zapłacili nam więcej")
sheet3.write(1, 2, "I jeszcze więcej nam zapłacą")
sheet3.write(2, 2, "Będzie fajowo")

# zapisujemy do pliku
book.save("raport.xls")
Metoda write przyjmuje trzy argumenty - wiersz, kolumna, wartość. Wiersz i kolumna numerowane od zera.

Czytanie arkuszy też nie nastręcza problemów. Oto przykład:

import xlrd

# otwarcie pliku
book = xlrd.open_workbook("raport.xls")

# dla każdego arkusza wyświetlamy zawartość pola 0,0
for sheet_name in book.sheet_names():
	arkusz = book.sheet_by_name(sheet_name)
	print arkusz.row_values(0)[0]

Metoda sheet_by_name zwraca obiekt danego arkusza. Za pomocą tego obiektu możemy odczytać dane w nim zawarte. Metoda row_values zwróci wszystkie wartości dla podanego wiersza, lub zwróci wyjątek jeżeli żadne pole w danym wierszu nie zawiera danych.

blog comments powered by Disqus

Kategorie

Strony