0Pricing
R Academy · Lektion

Excel-Dateien mit readxl importieren

Lesen Sie .xls- und .xlsx-Tabellenblätter mit Optionen für die Blattauswahl und Zellbereiche ein.

Excel-Dateien mit readxl importieren ist eine kostenlose R Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des R Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der R Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum readxl für Excel-Dateien?

Excel-Dateien (.xlsx und .xls) sind in Geschäftsumgebungen allgegenwärtig. Das Paket readxl liest sie ein, ohne dass Excel installiert sein muss, und benötigt keine Java-Abhängigkeiten. Es gibt ein Tibble zurück und unterstützt mehrere Tabellenblätter, benannte Bereiche sowie die Erkennung von Zelltypen.

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() — Alle Tabellenblätter auflisten

excel_sheets('file.xlsx') gibt einen Character-Vektor mit den Namen aller Tabellenblätter zurück. Verwenden Sie die Funktion vor dem Einlesen, um die Struktur der Arbeitsmappe zu untersuchen, und übergeben Sie anschließend den Namen des Tabellenblatts an 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() — Grundlegende Verwendung

read_excel(path) liest standardmäßig das erste Tabellenblatt ein. Die Funktion erkennt automatisch, ob es sich um eine .xls- oder .xlsx-Datei handelt. Das Ergebnis ist ein Tibble, dessen Spaltentypen aus den Daten abgeleitet werden.

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')

Das Argument sheet — Nach Name oder Index auswählen

Verwenden Sie sheet='Sheet1', um nach Namen auszuwählen, oder sheet=2, um nach Position auszuwählen (beginnend bei 1). Beides ist gültig. Die Verwendung von Namen ist robuster, wenn sich die Reihenfolge der Tabellenblätter ändert; Indizes sind bei Iterationen praktisch.

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 — Einen Zellbereich einlesen

range='A1:D10' liest nur den angegebenen Zellbereich in Excel-Notation ein. Das ist nützlich, wenn ein Tabellenblatt mehrere Tabellen enthält, Formatierungsrahmen aufweist oder sich außerhalb des benötigten Datenbereichs Metadaten befinden.

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 — Benutzerdefinierte Spaltennamen

Setzen Sie col_names=FALSE, um die Kopfzeile zu überspringen und die Spalten automatisch zu benennen. Übergeben Sie einen Character-Vektor an col_names, um benutzerdefinierte Namen zu verwenden (und die Kopfzeile zu überspringen). Kombinieren Sie dies mit skip, wenn sich die Kopfzeile in einer anderen Zeile befindet.

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))

Das Argument skip — Metadatenzeilen überspringen

skip=n überspringt vor dem Einlesen die ersten n Zeilen des Tabellenblatts. Das ist nützlich, wenn Arbeitsblätter über der eigentlichen Datentabelle Berichtstitel, Erstellungsdaten oder andere Metadaten enthalten.

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 — Spaltentypen festlegen

Verwenden Sie col_types, um die automatische Typenerkennung zu überschreiben. Gültige Typen sind: 'text', 'numeric', 'date', 'logical', 'skip' (entfernt die Spalte) und 'list' (für Spalten mit gemischten Typen).

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))

Alle Tabellenblätter mit map() einlesen

Kombinieren Sie excel_sheets() mit purrr::map(), um alle Tabellenblätter auf einmal in eine benannte Liste einzulesen. Jedes Listenelement ist ein Tibble für das jeweilige Tabellenblatt. Verwenden Sie map_df(.id='sheet'), um alle Tabellenblätter zeilenweise zusammenzuführen.

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 — Anzahl der eingelesenen Zeilen begrenzen

n_max=n liest höchstens n Datenzeilen ein (ohne die Kopfzeile). Verwenden Sie dies, um große Tabellenblätter in der Vorschau zu prüfen, eine Stichprobe zum Testen zu laden oder Daten in speicherbegrenzten Umgebungen blockweise einzulesen.

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')

na-Argument — Zeichenfolgen für fehlende Werte

Wie readr akzeptiert auch readxl ein na-Argument, mit dem Sie festlegen, welche Textzeichenfolgen als NA eingelesen werden sollen. In Excel werden fehlende Werte häufig als leere Zellen (automatisch verarbeitet) oder als spezielle Zeichenfolgen wie 'N/A' oder '#N/A' gespeichert.

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)))

Schnelltest

Was gibt excel_sheets('file.xlsx') zurück?

Zusammenfassung: Excel-Dateien importieren

Die wichtigsten Punkte zum Excel-Import mit readxl:

  • excel_sheets(path) — listet alle Blattnamen auf
  • read_excel(path) — liest das erste Blatt ein und erkennt .xls/.xlsx automatisch
  • sheet='Name' oder sheet=2 — wählt ein Blatt nach Namen oder Index aus
  • range='A1:D10' — liest einen bestimmten Zellbereich ein
  • col_names, skip — verarbeitet Metadatenzeilen und benutzerdefinierte Überschriften
  • col_types = c('text','numeric','date','skip') — überschreibt die automatische Typbestimmung
  • n_max=5 — zeigt eine Vorschau großer Dateien an; na=c('N/A','#N/A') — benutzerdefinierte NA-Zeichenfolgen
  • Mit map(excel_sheets(path), ~read_excel(path, sheet=.x)) können Sie alle Blätter kombinieren
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)

Häufig gestellte Fragen

Ist die Lektion „Excel-Dateien mit readxl importieren“ kostenlos?

Ja — der vollständige Text von „Excel-Dateien mit readxl importieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des R Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der R Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Excel-Dateien mit readxl importieren“?

Lesen Sie .xls- und .xlsx-Tabellenblätter mit Optionen für die Blattauswahl und Zellbereiche ein. Du übst R Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um R Academy zu starten?

Keine Vorkenntnisse erforderlich. R Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Excel-Dateien mit readxl importieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser R Academy-Lektion Code schreiben und ausführen?

Ja. Jede R Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. CSV-Dateien mit read_csv() lesen
  2. TSV- und Fixed-Width-Dateien parsen
  3. Excel-Dateien mit readxl importieren
  4. Daten in mehrere Formate schreiben
← Zurück zu R Academy