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_workbookz opcjamiread_onlyidata_only- Wybieranie arkuszy za pomocą
wb.active,wb['Name'],wb.sheetnames - Odczytywanie za pomocą
.value,iter_rows(values_only=True)oraz sprawdzaniemax_row/max_column - Uwzględnianie wartości
Nonew 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
- Odczytywanie skoroszytów
- Zapis i stylizowanie komórek
- Formuły i wykresy
- Przetwarzanie raportów wsadowych