Importazione di file Excel con readxl
Legga fogli .xls e .xlsx con opzioni per selezionare il foglio e l'intervallo di celle.
Importazione di file Excel con readxl è una lezione R Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento R Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso R Academy include 4 lezioni in totale.
Perché usare readxl per i file Excel?
I file Excel (.xlsx e .xls) sono onnipresenti negli ambienti aziendali. Il pacchetto readxl li legge senza richiedere l'installazione di Excel e senza dipendenze da Java. Restituisce un tibble e gestisce più fogli, intervalli denominati e rilevamento dei tipi delle celle.
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() — Elencare tutti i fogli
excel_sheets('file.xlsx') restituisce un vettore di caratteri contenente i nomi di tutti i fogli. Lo usi prima della lettura per esaminare la struttura della cartella di lavoro, quindi passi il nome del foglio a 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() — Utilizzo di base
read_excel(path) legge per impostazione predefinita il primo foglio. Rileva automaticamente se il file è .xls o .xlsx. Il risultato è un tibble con i tipi delle colonne dedotti dai dati.
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')Argomento sheet — Selezionare per nome o indice
Usi sheet='Sheet1' per selezionare un foglio per nome oppure sheet=2 per selezionarlo in base alla posizione (indicizzata a partire da 1). Entrambe le modalità sono valide. I nomi sono più robusti se cambia l'ordine dei fogli; gli indici sono comodi per l'iterazione.
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 — Leggere un intervallo di celle
range='A1:D10' legge solo l'intervallo di celle specificato nella notazione di Excel. È utile quando un foglio contiene più tabelle, bordi di formattazione o metadati esterni all'area dei dati che deve leggere.
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 — Nomi personalizzati delle colonne
Imposti col_names=FALSE per saltare la riga di intestazione e assegnare automaticamente i nomi alle colonne. Passi a col_names un vettore di caratteri per usare nomi personalizzati e saltare la riga di intestazione. Combini questa opzione con skip se l'intestazione si trova in un'altra riga.
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))Argomento skip — Saltare le righe dei metadati
skip=n salta le prime n righe del foglio prima della lettura. È utile quando i fogli di lavoro contengono titoli del rapporto, date di generazione o altri metadati sopra la tabella dei dati effettiva.
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 — Specificare i tipi delle colonne
Usi col_types per sovrascrivere l'inferenza dei tipi. I tipi validi sono: 'text', 'numeric', 'date', 'logical', 'skip' (elimina la colonna) e 'list' (per colonne con tipi misti).
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))Leggere tutti i fogli con map()
Combini excel_sheets() con purrr::map() per leggere contemporaneamente tutti i fogli in una lista denominata. Ogni elemento della lista è un tibble corrispondente a quel foglio. Usi map_df(.id='sheet') per concatenare per righe tutti i fogli.
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 — Limitare le righe lette
n_max=n legge al massimo n righe di dati, senza contare l'intestazione. Lo usi per visualizzare l'anteprima di fogli di lavoro grandi, caricare un campione per i test o leggere i dati in blocchi in ambienti con memoria limitata.
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')Argomento na — stringhe di valori mancanti
Come readr, readxl accetta un argomento na che specifica quali stringhe di testo devono essere lette come NA. Excel memorizza spesso i valori mancanti come celle vuote (gestite automaticamente) oppure come stringhe sentinella quali 'N/A' o '#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)))Verifica rapida
Che cosa restituisce excel_sheets('file.xlsx')?
Riepilogo: importazione di file Excel
Punti chiave per importare file Excel con readxl:
excel_sheets(path)— elenca tutti i nomi dei fogliread_excel(path)— legge il primo foglio e rileva automaticamente i file .xls/.xlsxsheet='Name'osheet=2— seleziona il foglio per nome o indicerange='A1:D10'— legge un intervallo specifico di cellecol_names, skip— gestisce le righe di metadati e le intestazioni personalizzatecol_types = c('text','numeric','date','skip')— sovrascrive il rilevamento automatico dei tipin_max=5— visualizza in anteprima i file di grandi dimensioni;na=c('N/A','#N/A')— stringheNApersonalizzate- Combina con
map(excel_sheets(path), ~read_excel(path, sheet=.x))per tutti i fogli
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)Domande Frequenti
La lezione «Importazione di file Excel con readxl» è gratuita?
Sì — il testo completo di «Importazione di file Excel con readxl» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso R Academy, passa a CoddyKit PRO. Il corso R Academy include 4 lezioni in totale.
Cosa imparerò in «Importazione di file Excel con readxl»?
Legga fogli .xls e .xlsx con opzioni per selezionare il foglio e l'intervallo di celle. Eserciti R Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare R Academy?
Non è richiesta alcuna esperienza precedente. R Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Importazione di file Excel con readxl»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione R Academy?
Sì. Ogni lezione R Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Lettura di file CSV con read_csv()
- Analisi di file TSV e a larghezza fissa
- Importazione di file Excel con readxl
- Scrittura dei dati in più formati