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