0Pricing
R Academy · Aula

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 planilhas
  • read_excel(path) — lê a primeira planilha; detecta automaticamente .xls/.xlsx
  • sheet='Name' ou sheet=2 — seleciona uma planilha pelo nome ou índice
  • range='A1:D10' — lê um intervalo específico de células
  • col_names, skip — trata linhas de metadados e cabeçalhos personalizados
  • col_types = c('text','numeric','date','skip') — substitui a inferência de tipos
  • n_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

  1. Lendo arquivos CSV com read_csv()
  2. Analisando arquivos TSV e de largura fixa
  3. Importando arquivos do Excel com readxl
  4. Gravando dados em vários formatos
← Voltar para R Academy