2015-02-23 8 views
6

Ich versuche, eine .xlsb-Datei in R zu öffnen und ähnliche Fehler zu erhalten.Wie öffne ich eine .xlsb-Datei in R?

Gibt es Empfehlungen, wie Sie dieses Problem lösen können, ohne die Daten herunterladen und in einem anderen Format speichern zu müssen?

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

Fehlermeldungen: Fehler in .jcall ("RJavaTools", "Ljava/lang/Objekt;", "InvokeMethod", cl,: org.apache.poi.xssf.XLSBUnsupportedException:. XLSB Binary Workbooks sind nicht

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

Fehlermeldungen: Fehler: XLSBUnsupportedException (Java): .xlsb Binary Workbooks sind nicht

unterstützt

Bitte beachten Sie:

Ich kann keine Perl-Bibliotheken installieren.

Ich bin mit 64bit R.

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

Meine Daten stammen von: http://phx.corporate-ir.net/phoenix.zhtml?c=79687&p=irol-reportsother

Antwort

2

Eine Möglichkeit könnte sein, ODBC zu verwenden:

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

Nur eine kurze Notiz, wenn Sie einen Fehler, wenn es darum, aktualisieren Sie Ihre Windows-Treiber [hier] (https://www.microsoft.com/en-us/download/details. aspx? displaylang = en & id = 13255) und die Lösung funktioniert. – hubbs5

2

Bibliothek (RODBC)

wb <- "D:\\Data\\Masked Data.xlsb" # Give the file name 
con2 <- odbcConnectExcel2007(wb) 
data <- sqlFetch(con2, "Sheet1$") # Provide name of sheet 
nrow(data)