2

我有一个 Excel XLSB 格式的每日报告文件夹,现在我正在尝试导入文件夹中的所有文件并绑定到 R 中的一个数据框中。我有将多个 CSV 文件的文件夹导入 R 的经验,代码如下:

library(tidyverse)
setwd("C:/Folder_Path")
file_path <- list.files(pattern="*.csv")
combined_df <- lapply(file_path, read_csv) %>% bind_rows

我尝试在这种情况下实现此代码以导入 XLSB 文件,我需要的电子表格是“Sheet1”,并且标题从第 4 行开始,因此我创建了一个自定义函数来执行此操作:

library(tidyverse)
binary_import <- function(x){
    readxl::read_excel(x, sheet="Sheet1", skip=3)}
setwd("C:/Folder_Path")
file_path <- list.files(pattern="*.csv")
combined_df <- lapply(file_path, binary_import) %>% bind_rows

然后我注意到 readxl 包不支持 xlsb 扩展。是否有任何解决方法可供我完成工作,而不是手动将文件转换为 csv 格式,因为有数百个文件。

4

1 回答 1

1

除了 xlsb 部分之外,您的代码都有效。您可以使用 excel.link 包来阅读 xlsb

library(tidyverse)
library (excel.link)

setwd("C:/Folder_Path")
file_path <- list.files(pattern="*\\.xlsb")
allxlsb <- NULL


for(i in 1:length(file_path)){
  temp <- xl.read.file(filename = file_path[i], xl.sheet = "Sheet1", top.left.cell = "A4")
  allxlsb <- rbind(allxlsb, temp)
}
于 2019-03-04T18:17:00.083 回答