首页 > 解决方案 > 从目录读取多个 xlsx 文件时 xlsx 包出错

问题描述

我正在编写代码以从目录中读取数据。这些文件具有不同的扩展名,例如 xlsx、xls、CSV 等。我使用 if else 条件来读取不同的格式。我读取 xlsx 文件的片段如下:

inputPath = "C:/work1/Apple/Data/LA/Test/L3"
if(str_detect(string = inputPath, pattern = ".xlsx")) {
    dataInput = read.xlsx(xlsxFile = filePath,
                          sheet = 1)}

当我运行此代码时,我收到这样的错误,回溯如下:

 Error in file(description = xlsxFile) : invalid 'description' argument 
4.
file(description = xlsxFile) 
3.
getFile(xlsxFile) 
2.
read.xlsx.default(xlsxFile = inputPath, sheet = 1) 
1.
read.xlsx(xlsxFile = inputPath, sheet = 1) 

我创建了这个输入路径,如下所示:

identifier = "Test"
dataDirPath = file.path(getwd(), "Data/LA", identifier)
mode = "L3"
inputPath = list.files(file.path(dataDirPath, mode), full.names = TRUE)

inputPath 包含以下内容:

> inputPath
[1] "C:/work1/Apple/Data/LA/Test/L3/12303?????????(???????).xlsx"
[2] "C:/work1/Apple/Data/LA/Test/L3/12306?????????(???????).xlsx"
[3] "C:/work1/Apple/Data/LA/Test/L3/12309?????????(???????).xlsx"
[4] "C:/work1/Apple/Data/LA/Test/L3/12312?????????(???????).xlsx"
[5] "C:/work1/Apple/Data/LA/Test/L3/34503?????????(???????).xlsx"
[6] "C:/work1/Apple/Data/LA/Test/L3/34506?????????(???????).xlsx"
[7] "C:/work1/Apple/Data/LA/Test/L3/34509?????????(???????).xlsx"
[8] "C:/work1/Apple/Data/LA/Test/L3/34512?????????(???????).xlsx"
[9] "C:/work1/Apple/Data/LA/Test/L3/56703?????????(???????).xlsx"
> 

一件事是该目录中的文件包含日文字符和一些数字。在上面的 inputPath 输出中,'?' 实际上包含日文字符。但是代码不会读取它。

注意:我一开始就将语言环境设置为日语。

例如,

1234林檎.xlsx

这里有什么问题吗?

标签: rexceldataframexlsxcjk

解决方案


推荐阅读