knitr::opts_chunk$set(echo = TRUE, eval = TRUE, tidy = TRUE, highlight = TRUE, warning = FALSE, error = FALSE, message = FALSE, include = TRUE,fig.width = 9.4,fig.height = 4)

1、安装加载相关包

# install.packages('openxlsx') 加载包
library(openxlsx)  # getSheetNames()、read.xlsx()
library(plyr)  # ldply()

2、读取一个workbook的多个sheets

xlsxfile <- "/resources/rstudio/excel/excel1.xlsx"  # 文件路径
readsheets <- function(file) {
    sheetsnames <- getSheetNames(file)
    ldply(sheetsnames, .fun = function(x) read.xlsx(xlsxFile = file, sheet = x))
}
readsheets(xlsxfile)
##   rank name score
## 1    1   一    11
## 2    2   二    12
## 3    3   三    13
## 4    4   四    14
## 5    5   五    15
## 6    6   六    16
## 7    7   七    17
## 8    8   八    18
## 9    9   九    19

3、读取一个文件夹下的多个workbooks中的多个sheets

readwks <- function(file) {
    filenames <- list.files(path = file, pattern = "*.xlsx", full.names = TRUE)
    ldply(filenames, .fun = readsheets)
}

readwks("/resources/rstudio/excel")
##    rank name score
## 1     1   一    11
## 2     2   二    12
## 3     3   三    13
## 4     4   四    14
## 5     5   五    15
## 6     6   六    16
## 7     7   七    17
## 8     8   八    18
## 9     9   九    19
## 10   11 十一    21
## 11   12 十二    22
## 12   13 十三    23
## 13   14 十四    24
## 14   15 十五    25
## 15   16 十六    26
## 16   17 十七    27
## 17   18 十八    28
## 18   19 十九    29