首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中打开.xlsb文件?

如何在R中打开.xlsb文件?
EN

Stack Overflow用户
提问于 2015-02-23 21:52:26
回答 4查看 20K关注 0票数 21

我试图在R中打开一个.xlsb文件,并不断得到类似的错误。

对于如何解决这个问题,不需要下载数据并将其保存在不同的格式中,有什么建议吗?

代码语言:javascript
复制
read.xlsx(paste(OutputLocation,FileName, sep=""), sheetName = "Master Data")

错误消息:.jcall中的错误(“RJavaTools”,“Ljava/lang/.jcall;”,"invokeMethod",cl,:org.apache.poi.xssf.XLSBUnsupportedException:.XLSB二进制工作簿不受支持)

代码语言:javascript
复制
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

EN

回答 4

Stack Overflow用户

发布于 2016-08-09 11:32:13

使用RODBC包:

代码语言:javascript
复制
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)
票数 16
EN

Stack Overflow用户

发布于 2015-02-23 22:54:45

一种方法可以是使用ODBC:

代码语言:javascript
复制
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) 
}
票数 6
EN

Stack Overflow用户

发布于 2019-05-22 11:31:17

如果在试图连接到.xlsb的R中出现以下错误

代码语言:javascript
复制
[RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

然后,您可能缺少从微软安装AccessDatabaseEngine_X64.exe。我今天遇到了这个问题,在安装这个文件之后,我没有收到更多的错误消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28684199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档