R Academy · Lekcja

Importowanie plików Excela za pomocą readxl

Odczytuj arkusze .xls i .xlsx, wybierając arkusz oraz zakres komórek.

Lekcja 3 z 413 kroki

Importowanie plików Excela za pomocą readxl to bezpłatna lekcja R Academy na CoddyKit. To lekcja 3 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 R Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs R Academy zawiera 4 lekcji w sumie.

Dlaczego readxl do plików Excel?

Pliki Excel (.xlsx i .xls) są powszechnie używane w środowiskach biznesowych. Pakiet readxl odczytuje je bez konieczności instalowania programu Excel i bez zależności od Javy. Zwraca tibble oraz obsługuje wiele arkuszy, nazwane zakresy i wykrywanie typów komórek.

library(readxl)

# readxl can read:
# .xlsx  - modern Excel format (XML-based)
# .xls   - older Excel format (binary)
# .xlsm  - Excel with macros (reads data, ignores macros)

# Core functions:
# read_excel()   - auto-detects .xls vs .xlsx
# read_xlsx()    - always reads as .xlsx
# read_xls()     - always reads as .xls
# excel_sheets() - lists all sheet names

cat('readxl requires no Java, no Excel installation!')

excel_sheets() — wyświetlanie wszystkich arkuszy

excel_sheets('file.xlsx') zwraca wektor znaków zawierający nazwy wszystkich arkuszy. Użyj tej funkcji przed odczytem, aby sprawdzić strukturę skoroszytu, a następnie przekaż nazwę arkusza do read_excel().

library(readxl)

# Using readxl's built-in example file
path <- readxl_example('datasets.xlsx')

# List all sheets in the workbook
sheets <- excel_sheets(path)
print(sheets)

cat('\nNumber of sheets:', length(sheets))

read_excel() — podstawowe użycie

read_excel(path) domyślnie odczytuje pierwszy arkusz. Automatycznie rozpoznaje, czy plik jest w formacie .xls czy .xlsx. Wynikiem jest tibble z typami kolumn określonymi na podstawie danych.

library(readxl)

path <- readxl_example('datasets.xlsx')

# Read the first sheet (default)
df <- read_excel(path)
print(head(df, 4))
cat('\nDimensions:', nrow(df), 'rows x', ncol(df), 'cols')

Argument sheet — wybór według nazwy lub indeksu

Użyj sheet='Sheet1', aby wybrać arkusz według nazwy, lub sheet=2, aby wybrać go według pozycji (indeksowanej od 1). Obie metody są poprawne. Używanie nazw jest bardziej niezawodne, gdy kolejność arkuszy może się zmienić, natomiast indeksy są wygodne podczas iteracji.

library(readxl)

path <- readxl_example('datasets.xlsx')
sheets <- excel_sheets(path)
print(sheets)

# Read by name
df_name <- read_excel(path, sheet = 'iris')
cat('iris sheet rows:', nrow(df_name), '\n')

# Read by index
df_idx <- read_excel(path, sheet = 2)
cat('Sheet 2 rows:', nrow(df_idx))

range — odczytywanie zakresu komórek

range='A1:D10' odczytuje wyłącznie określony zakres komórek w notacji Excela. Jest to przydatne, gdy arkusz zawiera wiele tabel, obramowania formatowania lub metadane poza potrzebnym obszarem danych.

library(readxl)

path <- readxl_example('datasets.xlsx')

# Read only the first 5 data rows of columns A-D
df <- read_excel(path, sheet='iris', range='A1:D6')
print(df)
cat('\nShape:', nrow(df), 'rows,', ncol(df), 'cols')

col_names — niestandardowe nazwy kolumn

Ustaw col_names=FALSE, aby pominąć wiersz nagłówkowy i automatycznie nadać nazwy kolumnom. Przekaż wektor znaków do col_names, aby użyć niestandardowych nazw (i pominąć wiersz nagłówkowy). Połącz z skip, jeśli nagłówek znajduje się w innym wierszu.

library(readxl)

path <- readxl_example('datasets.xlsx')

# Read with custom column names (skip original header)
df <- read_excel(
  path,
  sheet = 'iris',
  col_names = c('sepal_l','sepal_w','petal_l','petal_w','species'),
  skip = 1  # Skip the original header row
)

print(head(df, 3))
print(names(df))

Argument skip — pomijanie wierszy metadanych

skip=n pomija pierwszych n wierszy arkusza przed rozpoczęciem odczytu. Jest to przydatne, gdy nad właściwą tabelą danych znajdują się tytuły raportów, daty wygenerowania lub inne metadane.

library(readxl)

# Simulating a sheet with metadata rows (using a range instead)
path <- readxl_example('datasets.xlsx')

# Skip first row (pretend it has a title)
# and read only first 5 data rows
df <- read_excel(
  path,
  sheet = 'chickwts',
  skip = 1,       # Skip first data row
  col_names = FALSE  # Row 2 has no header now
)

print(head(df, 4))

col_types — określanie typów kolumn

Użyj col_types, aby zastąpić automatyczne określanie typów. Dostępne typy to: 'text', 'numeric', 'date', 'logical', 'skip' (usuwa kolumnę) oraz 'list' (dla kolumn zawierających wartości różnych typów).

library(readxl)

path <- readxl_example('datasets.xlsx')

# Read with explicit column types
# iris sheet: 4 numeric + 1 text
df <- read_excel(
  path,
  sheet = 'iris',
  col_types = c('numeric','numeric','numeric','numeric','text')
)

print(sapply(df, class))

Odczytywanie wszystkich arkuszy za pomocą map()

Połącz excel_sheets() z purrr::map(), aby jednocześnie odczytać wszystkie arkusze do nazwanej listy. Każdy element listy jest tibble odpowiadającym danemu arkuszowi. Użyj map_df(.id='sheet'), aby połączyć wiersze wszystkich arkuszy.

library(readxl)
library(purrr)

path <- readxl_example('datasets.xlsx')
sheets <- excel_sheets(path)

# Read all sheets into a named list
all_data <- map(sheets, ~read_excel(path, sheet=.x))
names(all_data) <- sheets

# Show dimensions of each sheet
map_df(all_data, function(df) {
  data.frame(rows=nrow(df), cols=ncol(df))
}, .id='sheet')

n_max — ograniczanie liczby odczytywanych wierszy

n_max=n odczytuje najwyżej n wierszy danych (bez nagłówka). Użyj tego argumentu, aby wyświetlić podgląd dużych arkuszy, wczytać próbkę do testów lub odczytywać dane fragmentami w środowiskach z ograniczoną pamięcią.

library(readxl)

path <- readxl_example('datasets.xlsx')

# Preview just the first 5 rows
preview <- read_excel(path, sheet='iris', n_max=5)
print(preview)
cat('\nPreviewed', nrow(preview), 'of', nrow(read_excel(path, sheet='iris')), 'rows')

Argument na — ciągi oznaczające brakujące wartości

Podobnie jak readr, pakiet readxl przyjmuje argument na, który określa, które ciągi tekstowe mają być odczytywane jako NA. W programie Excel brakujące wartości są często przechowywane jako puste komórki (obsługiwane automatycznie) lub ciągi zastępcze, takie jak 'N/A' albo '#N/A'.

library(readxl)

path <- readxl_example('datasets.xlsx')

# Handle Excel error strings and custom NA markers
# In real files these might be '#N/A', '#VALUE!', 'N/A', '-'
df <- read_excel(
  path,
  sheet = 'iris',
  na = c('', 'NA', 'N/A', '#N/A', '-')
)

cat('Missing values per column:\n')
print(colSums(is.na(df)))

Szybkie sprawdzenie

Co zwraca excel_sheets('file.xlsx')?

Podsumowanie: importowanie plików Excel

Najważniejsze informacje dotyczące importowania plików Excel za pomocą readxl:

  • excel_sheets(path) — wyświetla nazwy wszystkich arkuszy
  • read_excel(path) — odczytuje pierwszy arkusz; automatycznie rozpoznaje pliki .xls/.xlsx
  • sheet='Name' lub sheet=2 — wybiera arkusz według nazwy lub indeksu
  • range='A1:D10' — odczytuje określony zakres komórek
  • col_names, skip — obsługuje wiersze metadanych i niestandardowe nagłówki
  • col_types = c('text','numeric','date','skip') — zastępuje automatyczne rozpoznawanie typów
  • n_max=5 — umożliwia podgląd dużych plików; na=c('N/A','#N/A') — definiuje niestandardowe ciągi NA
  • Połącz z map(excel_sheets(path), ~read_excel(path, sheet=.x)), aby odczytać wszystkie arkusze
library(readxl)
library(purrr)

path <- readxl_example('datasets.xlsx')

# Full workflow: discover, select, read
cat('Sheets available:', paste(excel_sheets(path), collapse=', '), '\n\n')

# Read a specific sheet with explicit types
df <- read_excel(
  path,
  sheet = 'iris',
  col_types = c('numeric','numeric','numeric','numeric','text'),
  n_max = 5
)

print(df)
Bezpłatny start

Ucz się R dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
43
Lekcje
159

Często zadawane pytania

Czy lekcja „Importowanie plików Excela za pomocą readxl” jest bezpłatna?

Tak — pełny tekst „Importowanie plików Excela za pomocą readxl” 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 R Academy, przejdź na CoddyKit PRO. Kurs R Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Importowanie plików Excela za pomocą readxl”?

Odczytuj arkusze .xls i .xlsx, wybierając arkusz oraz zakres komórek. Ćwiczysz R 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ąć R Academy?

Nie wymagamy żadnego doświadczenia. R 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 3 z 4.

Ile czasu zajmuje lekcja „Importowanie plików Excela za pomocą readxl”?

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 R Academy?

Tak. Każda lekcja R 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 plików CSV za pomocą read_csv()
  2. Parsowanie plików TSV i plików o stałej szerokości
  3. Importowanie plików Excela za pomocą readxl
  4. Zapisywanie danych w wielu formatach
← Powrót do R Academy