我试图在R中打开一个.xlsb文件,并不断得到类似的错误。
对于如何解决这个问题,不需要下载数据并将其保存在不同的格式中,有什么建议吗?
read.xlsx(paste(OutputLocation,FileName, sep=""), sheetName = "Master Data")错误消息:.jcall中的错误(“RJavaTools”,“Ljava/lang/.jcall;”,"invokeMethod",cl,:org.apache.poi.xssf.XLSBUnsupportedException:.XLSB二进制工作簿不受支持)
rigDataWB<-loadWorkbook(paste(OutputLocation,FileName, sep=""))错误消息:不支持错误: XLSBUnsupportedException (Java):.XLSB二进制工作簿
请注意:
我无法安装Perl库。
我在跑64位R。
参考: http://www.milanor.net/blog/?p=779
我的数据来自: http://phx.corporate-ir.net/phoenix.zhtml?c=79687&p=irol-reportsother
发布于 2016-08-09 11:32:13
使用RODBC包:
library(RODBC)
wb <- "D:\\Data\\Masked Data.xlsb" # Give the file name
con2 <- odbcConnectExcel2007(wb)
data <- sqlFetch(con2, "Sheet1$") # Provide name of sheet
nrow(data)发布于 2015-02-23 22:54:45
一种方法可以是使用ODBC:
require(RODBC)
if (any(grepl("*.xlsb", odbcDataSources(), fixed = TRUE))) {
download.file(url = "http://phx.corporate-ir.net/External.File?item=UGFyZW50SUQ9NTcwMjI1fENoaWxkSUQ9MjcxMjIxfFR5cGU9MQ==&t=1",
destfile = file.path(tempdir(), "test.xlsb"),
mode = "wb")
conn <- odbcConnectExcel2007( file.path(tempdir(), "test.xlsb"))
df <- sqlFetch(conn, sub("'(.*)\\$'", "\\1", sqlTables(conn)$TABLE_NAME)[4]) # read 4th sheet in the table name list
head(df, 10)
# F1 F2 F3 F4 F5 F6
# 1 <NA> <NA> <NA> <NA> <NA> NA
# 2 <NA> <NA> <NA> <NA> <NA> NA
# 3 <NA> <NA> <NA> <NA> <NA> NA
# 4 <NA> <NA> <NA> <NA> <NA> NA
# 5 Baker Hughes Gulf of Mexico Oil / Gas Split <NA> <NA> <NA> <NA> NA
# 6 <NA> <NA> <NA> <NA> <NA> NA
# 7 <NA> US Offshore Total\nGoM Gas\nGoM Oil \nGoM NA
# 8 1/7/00 127 123 116 7 NA
# 9 1/14/00 125 121 116 5 NA
# 10 1/21/00 125 121 116 5 NA
close(conn)
}发布于 2019-05-22 11:31:17
如果在试图连接到.xlsb的R中出现以下错误
[RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified然后,您可能缺少从微软安装AccessDatabaseEngine_X64.exe。我今天遇到了这个问题,在安装这个文件之后,我没有收到更多的错误消息。
https://stackoverflow.com/questions/28684199
复制相似问题