使用openxlsx批量导入Excel至R时遇参数错误问题排查
问题:使用openxlsx批量导入Excel文件时出现无效路径参数错误
我需要编写代码将多个Excel文件导入R,选择openxlsx包是因为后续要输出特定行列到Excel且不破坏现有公式。但运行代码时出现错误:Error in file(description = xlsxFile) : invalid 'description' argument
出错代码
library(openxlsx) file.list <- list.files(pattern='*.xlsx') sheet <- "Sheet 1" # Start loop for (i in seq(length(file.list))) { wb <- loadWorkbook(file = i) #Read a section of a sheet Data_Info<- read.xlsx(wb, sheet = sheet, colNames = TRUE, #Column Names are there rows = seq(1:nrow(df)), #Copy out these rows cols = seq(1:15)) #Copy out these columns # Assign a name to the data frames created assign(paste("Data_00", i), Data_Info) }
错误追踪信息
3: file(description = xlsxFile) 2: getFile(file) 1: openxlsx::loadWorkbook(file = i)
解决方法
问题核心是循环遍历的对象错误:for (i in seq(length(file.list)))遍历的是整数索引(1、2、3...),而loadWorkbook需要传入的是具体文件名,因此直接传入索引值会导致无效路径参数。
将循环语句改为直接遍历文件名列表即可修复:
for (i in file.list) { # 后续代码保持不变 }
另外注意代码中rows = seq(1:nrow(df))里的df未定义,运行时会引发新错误,建议先获取目标工作表的实际行数:
# 在read.xlsx前添加 sheet_dim <- getDimensions(wb, sheet = sheet) sheet_rows <- sheet_dim[1] # 修改rows参数 rows = seq(1:sheet_rows)
内容的提问来源于stack exchange,提问作者h09812349
相关产品推荐
相关产品推荐

