0Pricing
Python Academy · Lekcja

Odczytywanie skoroszytów

Otwieraj i odczytuj pliki Excel

Odczytywanie skoroszytów to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 1 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.

Excel z poziomu języka Python

openpyxl to standardowa biblioteka do odczytywania i zapisywania nowoczesnych plików Excela (w formacie .xlsx). Umożliwia automatyzowanie w Pythonie zadań związanych z arkuszami kalkulacyjnymi, które w przeciwnym razie trzeba byłoby wykonywać ręcznie.

Ta lekcja koncentruje się na otwieraniu plików i odczytywaniu ich zawartości.

Model skoroszytu

Pliki Excela mają przejrzystą hierarchię, którą odzwierciedla openpyxl:

  • Workbook cały plik
  • Worksheet jedna karta w pliku
  • Cell pojedyncza komórka w stylu A1 zawierająca wartość

Przechodzenie odbywa się od skoroszytu przez arkusz do komórki.

Otwieranie pliku

load_workbook('data.xlsx') odczytuje plik i zwraca skoroszyt. W przypadku dużych plików przeznaczonych wyłącznie do odczytu proszę przekazać read_only=True, aby odczytywać wiersze strumieniowo i oszczędzać pamięć.

Proszę użyć data_only=True, aby odczytać ostatni obliczony wynik komórek zawierających formuły zamiast ich tekstu.

Wybieranie arkusza

wb.active zwraca aktualnie wybrany arkusz. wb['Sheet1'] wybiera arkusz według nazwy, a wb.sheetnames wyświetla nazwy wszystkich kart. Wybór właściwego arkusza to pierwszy krok każdego odczytu.

sheetnames = ['Summary', 'Q1', 'Q2', 'Q3']
wanted = 'Q2'
if wanted in sheetnames:
    print('Selecting sheet:', wanted)
else:
    print('Not found, defaulting to', sheetnames[0])

Odczytywanie pojedynczej komórki

Do komórki można odwołać się za pomocą jej adresu w Excelu: ws['A1'].value, albo za pomocą numerów: ws.cell(row=1, column=1).value. Atrybut .value zawiera właściwe dane, które mogą być tekstem, liczbą, datą albo wartością None.

Litery i numery kolumn

Kolumny w Excelu oznacza się literami (A, B, ... Z, AA), ale openpyxl używa również numerów zaczynających się od 1. Czasami konieczna jest konwersja między tymi oznaczeniami. Poniżej pokazano numer kolumny odpowiadający literze.

def col_to_num(letters):
    num = 0
    for ch in letters.upper():
        num = num * 26 + (ord(ch) - ord('A') + 1)
    return num

for c in ['A', 'B', 'Z', 'AA']:
    print(c, '->', col_to_num(c))

Iterowanie po wierszach

ws.iter_rows(values_only=True) zwraca każdy wiersz jako krotkę wartości. To najczytelniejszy sposób odczytywania tabeli. Pierwszy wiersz zazwyczaj zawiera nagłówki.

Proszę iterować po wierszach tak jak po dowolnym obiekcie iterowalnym.

rows = [
    ('Name', 'Age', 'City'),
    ('Ada', 36, 'London'),
    ('Linus', 54, 'Helsinki'),
]
header = rows[0]
for record in rows[1:]:
    print(dict(zip(header, record)))

Znajdowanie używanego zakresu

ws.max_row i ws.max_column informują, jak daleko sięgają dane. ws.dimensions zwraca ciąg znaków reprezentujący zakres, na przykład 'A1:C10'. Proszę używać tych informacji, aby nie odczytywać pustych komórek.

Odczytywanie zakresu

Można wybrać wycinek arkusza: ws['A1:C3'] zwraca krotkę krotek wierszy zawierających obiekty komórek. Jest to przydatne, gdy potrzebna jest tylko część arkusza, a nie wszystkie wiersze.

Obsługa pustych komórek

Puste komórki zwracają wartość None. Rzeczywiste arkusze kalkulacyjne bywają nieuporządkowane, dlatego podczas odczytu proszę uwzględnić brakujące wartości, na przykład zastępując je wartością domyślną. Zapobiega to awariom w dalszej części programu.

raw_row = ('Ada', None, 'London')
clean = [v if v is not None else 'N/A' for v in raw_row]
print(clean)

Odczytywanie danych z wielu arkuszy

Skoroszyt może dzielić dane między karty, na przykład przechowywać dane z każdego miesiąca na osobnej karcie. Proszę iterować po wb.sheetnames, wybierać każdy arkusz i odczytywać go według tej samej logiki. Aby zachować informację o pochodzeniu danych, proszę oznaczyć każdy wiersz nazwą arkusza.

Ten wzorzec konsoliduje wiele kart w jeden połączony zbiór danych.

Szybki test

Proszę sprawdzić swoje umiejętności odczytywania danych.

Podsumowanie

Można już odczytywać pliki Excel:

  • Hierarchia: Workbook > Worksheet > Cell
  • load_workbook z opcjami read_only i data_only
  • Wybieranie arkuszy za pomocą wb.active, wb['Name'], wb.sheetnames
  • Odczytywanie za pomocą .value, iter_rows(values_only=True) oraz sprawdzanie max_row / max_column
  • Uwzględnianie wartości None w pustych komórkach

Często zadawane pytania

Czy lekcja „Odczytywanie skoroszytów” jest bezpłatna?

Tak — pełny tekst „Odczytywanie skoroszytów” 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 „Odczytywanie skoroszytów”?

Otwieraj i odczytuj pliki Excel Ć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 1 z 4.

Ile czasu zajmuje lekcja „Odczytywanie skoroszytów”?

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

  1. Odczytywanie skoroszytów
  2. Zapis i stylizowanie komórek
  3. Formuły i wykresy
  4. Przetwarzanie raportów wsadowych
← Powrót do Python Academy