将xlsb文件的文件夹导入R

时间:2018-01-10 07:42:47

标签: r import-from-excel xlsb

我有一个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格式,因为有数百个文件。

1 个答案:

答案 0 :(得分: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)
}