Importando arquivos do Excel com readxl
Leia planilhas .xls e .xlsx com opções de seleção de planilha e intervalo de células.
Importando arquivos do Excel com readxl é uma aula grátis de R Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de R Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de R Academy inclui 4 aulas no total.
Por que usar readxl para arquivos do Excel?
Arquivos do Excel (.xlsx e .xls) são onipresentes em ambientes empresariais. O pacote readxl os lê sem exigir que o Excel esteja instalado e sem dependências de Java. Ele retorna uma tibble e lida com várias planilhas, intervalos nomeados e detecção de tipos de células.
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() — listando todas as planilhas
excel_sheets('file.xlsx') retorna um vetor de caracteres com os nomes de todas as planilhas. Use-o antes da leitura para inspecionar a estrutura da pasta de trabalho e, em seguida, passe o nome da planilha para 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() — uso básico
read_excel(path) lê a primeira planilha por padrão. Ele detecta automaticamente se o arquivo é .xls ou .xlsx. O resultado é uma tibble com os tipos das colunas inferidos a partir dos dados.
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')Argumento sheet — selecionando por nome ou índice
Use sheet='Sheet1' para selecionar por nome ou sheet=2 para selecionar por posição (com índice iniciado em 1). As duas formas são válidas. Usar nomes é mais robusto se a ordem das planilhas mudar; usar índices é conveniente para iterações.
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 — lendo um intervalo de células
range='A1:D10' lê apenas o intervalo de células especificado na notação do Excel. Isso é útil quando uma planilha contém várias tabelas, possui bordas de formatação ou contém metadados fora da área de dados necessária.
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 — nomes personalizados para as colunas
Defina col_names=FALSE para ignorar a linha de cabeçalho e nomear as colunas automaticamente. Passe um vetor de caracteres para col_names para usar nomes personalizados (e ignorar a linha de cabeçalho). Combine com skip se o cabeçalho estiver em outra linha.
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))Argumento skip — ignorando linhas de metadados
skip=n ignora as primeiras n linhas da planilha antes da leitura. É útil quando as planilhas têm títulos de relatório, datas de geração ou outros metadados acima da tabela de dados propriamente dita.
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 — especificando os tipos das colunas
Use col_types para substituir a inferência de tipos. Tipos válidos: 'text', 'numeric', 'date', 'logical', 'skip' (descarta a coluna) e 'list' (para colunas com tipos mistos).
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))Lendo todas as planilhas com map()
Combine excel_sheets() com purrr::map() para ler todas as planilhas de uma só vez em uma lista nomeada. Cada elemento da lista é uma tibble correspondente àquela planilha. Use map_df(.id='sheet') para combinar todas as planilhas por linhas.
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 — limitando as linhas lidas
n_max=n lê no máximo n linhas de dados (sem incluir o cabeçalho). Use-o para visualizar planilhas grandes, carregar uma amostra para testes ou ler dados em blocos em ambientes com memória limitada.
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')Argumento na — Strings de valores ausentes
Assim como readr, readxl aceita um argumento na que especifica quais strings de texto devem ser lidas como NA. O Excel costuma armazenar valores ausentes como células vazias (tratadas automaticamente) ou como strings sentinela, como '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)))Verificação rápida
O que excel_sheets('file.xlsx') retorna?
Revisão: importando arquivos do Excel
Principais pontos sobre a importação do Excel com readxl:
excel_sheets(path)— lista todos os nomes de planilhasread_excel(path)— lê a primeira planilha; detecta automaticamente .xls/.xlsxsheet='Name'ousheet=2— seleciona uma planilha pelo nome ou índicerange='A1:D10'— lê um intervalo específico de célulascol_names, skip— trata linhas de metadados e cabeçalhos personalizadoscol_types = c('text','numeric','date','skip')— substitui a inferência de tiposn_max=5— visualiza arquivos grandes;na=c('N/A','#N/A')— define strings personalizadas para NA- Combine com
map(excel_sheets(path), ~read_excel(path, sheet=.x))para todas as planilhas
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)Perguntas Frequentes
A aula “Importando arquivos do Excel com readxl” é grátis?
Sim — o texto completo de “Importando arquivos do Excel com readxl” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de R Academy, atualize para CoddyKit PRO. O curso de R Academy inclui 4 aulas no total.
O que vou aprender em “Importando arquivos do Excel com readxl”?
Leia planilhas .xls e .xlsx com opções de seleção de planilha e intervalo de células. Você pratica R Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar R Academy?
Nenhuma experiência prévia é necessária. R Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Importando arquivos do Excel com readxl”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de R Academy?
Sim. Cada aula de R Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Lendo arquivos CSV com read_csv()
- Analisando arquivos TSV e de largura fixa
- Importando arquivos do Excel com readxl
- Gravando dados em vários formatos