2015-02-23 4 views
6

Я пытаюсь открыть файл .xlsb в R и продолжать получать подобные ошибки.Как открыть файл .xlsb в R?

Любые рекомендации по решению этой проблемы без необходимости загружать данные и сохранять их в другом формировании?

read.xlsx(paste(OutputLocation,FileName, sep=""), sheetName = "Master Data") 

Сообщения об ошибках: Ошибка в .jcall ("RJavaTools", "Ljava/языки/объекта;", "InvokeMethod", кл,: org.apache.poi.xssf.XLSBUnsupportedException:. XLSB Бинарные Workbooks не поддерживаются

rigDataWB<-loadWorkbook(paste(OutputLocation,FileName, sep="")) 

сообщения об ошибках: Ошибка: XLSBUnsupportedException (Java): .xlsb Бинарные Workbooks не поддерживаются

Обратите внимание:

Я не могу установить библиотеки Perl.

Я бегу 64BIT R.

Ссылка: http://www.milanor.net/blog/?p=779

Мои данные от: http://phx.corporate-ir.net/phoenix.zhtml?c=79687&p=irol-reportsother

ответ

2

Одним из способов может быть использование 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) 
} 
+1

Только быстрое примечание, если вы получаете сообщение об ошибке, обновление драйверов для Windows [здесь] (https://www.microsoft.com/en-us/download/details. aspx? displaylang = en & id = 13255), и решение работает. – hubbs5

2

библиотека (RODBC)

wb <- "D:\\Data\\Masked Data.xlsb" # Give the file name 
con2 <- odbcConnectExcel2007(wb) 
data <- sqlFetch(con2, "Sheet1$") # Provide name of sheet 
nrow(data) 
Смежные вопросы