Importer des fichiers Excel avec readxl
Lisez des feuilles .xls et .xlsx en sélectionnant la feuille et la plage de cellules.
Importer des fichiers Excel avec readxl est une leçon R Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage R Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours R Academy comprend 4 leçons au total.
Pourquoi utiliser readxl pour les fichiers Excel ?
Les fichiers Excel (.xlsx et .xls) sont omniprésents dans les environnements professionnels. Le package readxl les lit sans nécessiter l’installation d’Excel ni de dépendances Java. Il renvoie un tibble et prend en charge plusieurs feuilles, les plages nommées et la détection des types de cellules.
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() — Lister toutes les feuilles
excel_sheets('file.xlsx') renvoie un vecteur de caractères contenant les noms de toutes les feuilles. Utilisez cette fonction avant la lecture pour examiner la structure du classeur, puis transmettez le nom de la feuille à 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() — Utilisation de base
read_excel(path) lit par défaut la première feuille. La fonction détecte automatiquement si le fichier est au format .xls ou .xlsx. Le résultat est un tibble dont les types de colonnes sont déduits des données.
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 — Sélectionner par nom ou par indice
Utilisez sheet='Sheet1' pour sélectionner une feuille par son nom, ou sheet=2 pour la sélectionner par sa position (indexée à partir de 1). Les deux méthodes sont valides. Les noms sont plus robustes si l’ordre des feuilles change ; les indices sont pratiques pour l’itération.
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 — Lire une plage de cellules
range='A1:D10' lit uniquement la plage de cellules indiquée dans la notation Excel. Cette possibilité est utile lorsqu’une feuille contient plusieurs tableaux, des bordures de mise en forme ou des métadonnées en dehors de la zone de données qui vous intéresse.
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 — Noms personnalisés des colonnes
Définissez col_names=FALSE pour ignorer la ligne d’en-tête et nommer automatiquement les colonnes. Transmettez un vecteur de caractères à col_names pour utiliser des noms personnalisés (et ignorer la ligne d’en-tête). Combinez cette option avec skip si l’en-tête se trouve sur une autre ligne.
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 — Ignorer les lignes de métadonnées
skip=n ignore les n premières lignes de la feuille avant la lecture. Cette option est utile lorsque les feuilles de calcul contiennent un titre de rapport, une date de génération ou d’autres métadonnées au-dessus du tableau de données.
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 — Spécifier les types de colonnes
Utilisez col_types pour remplacer la détection automatique des types. Types valides : 'text', 'numeric', 'date', 'logical', 'skip' (supprime la colonne) et 'list' (pour les colonnes contenant plusieurs types).
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))Lire toutes les feuilles avec map()
Combinez excel_sheets() avec purrr::map() pour lire toutes les feuilles en une seule fois dans une liste nommée. Chaque élément de la liste est un tibble correspondant à une feuille. Utilisez map_df(.id='sheet') pour assembler toutes les feuilles par lignes.
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 — Limiter le nombre de lignes lues
n_max=n lit au maximum n lignes de données (sans compter l’en-tête). Utilisez cette option pour prévisualiser de grandes feuilles de calcul, charger un échantillon à des fins de test ou lire les données par blocs dans des environnements où la mémoire est limitée.
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 — chaînes de valeurs manquantes
Comme readr, readxl accepte un argument na qui indique quelles chaînes de texte doivent être lues comme NA. Excel stocke souvent les valeurs manquantes sous forme de cellules vides (gérées automatiquement) ou de chaînes sentinelles comme 'N/A' ou '#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)))Vérification rapide
Que renvoie excel_sheets('file.xlsx') ?
Récapitulatif : importer des fichiers Excel
Points essentiels pour importer des fichiers Excel avec readxl :
excel_sheets(path)— liste tous les noms de feuillesread_excel(path)— lit la première feuille et détecte automatiquement les formats .xls/.xlsxsheet='Name'ousheet=2— sélectionne une feuille par son nom ou son indexrange='A1:D10'— lit une plage de cellules précisecol_names, skip— gère les lignes de métadonnées et les en-têtes personnaliséscol_types = c('text','numeric','date','skip')— remplace la déduction automatique des typesn_max=5— permet de prévisualiser les fichiers volumineux ;na=c('N/A','#N/A')— définit des chaînes personnalisées pour les valeursNA- Combinez avec
map(excel_sheets(path), ~read_excel(path, sheet=.x))pour traiter toutes les feuilles
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)Apprends R avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 43
- Leçons
- 159
Questions Fréquemment Posées
La leçon « Importer des fichiers Excel avec readxl » est-elle gratuite ?
Oui — le texte complet de « Importer des fichiers Excel avec readxl » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours R Academy, passe à CoddyKit PRO. Le cours R Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Importer des fichiers Excel avec readxl » ?
Lisez des feuilles .xls et .xlsx en sélectionnant la feuille et la plage de cellules. Tu pratiques R Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer R Academy ?
Aucune expérience préalable n'est requise. R Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Importer des fichiers Excel avec readxl » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon R Academy ?
Oui. Chaque leçon R Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Lire des fichiers CSV avec read_csv()
- Analyser des fichiers TSV et à largeur fixe
- Importer des fichiers Excel avec readxl
- Écrire des données dans plusieurs formats