在R中读取XLSX文件时出错

Sha*_*ect 2 java r

我正在尝试使用以下行读取存储在网络驱动器上的1 MB XLSX文件

options(java.parameters="-Xmx4g")
library(rJava) 
library(xlsx) 
jgc <- function() {
  gc()
  .jcall("java/lang/System", method = "gc")
}    
jgc()
folder <- 'network_drive/State_Stuff/'  
state <- 'MI'
xlsx_in<- read.xlsx2(paste(folder, state,"_data.xlsx", sep = ""),
                  sheetName = "sheet1",
                  colClasses = c(rep("numeric",8), "character"))
Run Code Online (Sandbox Code Playgroud)

我得到以下错误。

Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, : org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException

我运行Windows7的64位RStudio和运行java -version收益

java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我尝试将文件从网络驱动器复制/粘贴到我的桌面上并读取该文件,但这会引发相同的错误。

但是,将文件移动到我的桌面上并使用另存为,然后将其另存为新文件,这样我就可以正常阅读了。

有人对这里发生的事情有想法吗?

bos*_*hek 5

尝试使用该readxl软件包。它不依赖于Java。

因此,例如:

library(readxl) 

folder <- 'network_drive/State_Stuff/'  
state <- 'MI'
xlsx_in<- read_excel(paste(folder, state,"_data.xlsx"),
                  sheet = "sheet1",
                  col_types = c(rep("numeric",8), "text"))
Run Code Online (Sandbox Code Playgroud)