This is how to do it using purrr
library(tidyverse)
library(readxl)
list_of_files <- list.files(path = "path/to/your/files",
pattern = "\\.xlsx$",
full.names = TRUE)
list_of_files %>%
map_dfr(~{.x %>%
excel_sheets() %>%
map_dfr(read_excel, path = .x)})
Also, if you want to keep track of the source of the data you can use the .id parameter
list_of_files %>%
set_names() %>%
map_dfr(~{.x %>%
excel_sheets() %>%
set_names() %>%
map_dfr(read_excel, path = .x, .id = "sheet")}, .id = "workbook")