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

use*_*746 13 r xlsb

我正在尝试在R中打开一个.xlsb文件并继续收到类似的错误.

有关如何解决此问题而不必下载数据并将其保存在不同的格式中的任何建议?

read.xlsx(paste(OutputLocation,FileName, sep=""), sheetName = "Master Data")
Run Code Online (Sandbox Code Playgroud)

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

rigDataWB<-loadWorkbook(paste(OutputLocation,FileName, sep=""))
Run Code Online (Sandbox Code Playgroud)

错误消息: 错误:XLSBUnsupportedException(Java):. XLSB不支持二进制工作簿

请注意:

我无法安装Perl库.

我正在运行64位R.

参考: http ://www.milanor.net/blog/?p = 779

我的数据来自: http ://phx.corporate-ir.net/phoenix.zhtml?c = 79787&p = irol-reportsother

小智 9

使用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)
Run Code Online (Sandbox Code Playgroud)


luk*_*keA 5

一种方法是使用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) 
}
Run Code Online (Sandbox Code Playgroud)

  • 只需快速说明,如果您收到错误,请更新您的Windows驱动程序[此处](https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=13255)和解决方案作品. (3认同)