2017-11-04 4 views
0

Ich habe 18 (.XLS) -Dateien und ich möchte Shiny verwenden, um sie zu öffnen und zu lesen. Ich bin mir nicht sicher, wo das Problem liegt. Ich konnte diesen gleichen Code verwenden zu öffnen (.xlsx) Dateien, wenn accept = c geändertSo öffnen Sie .XLS-Dateien mit shinyApp

install.packages("readxl") 
library(shiny) 
library(readxl) 

runApp(
    list(
    ui = fluidPage(
     titlePanel("Use readxls"), 
     sidebarLayout(
     sidebarPanel(
      fileInput('file1', 'Choose XLS file', 
        accept = c(".XLS") 
     ) 
     ), 
     mainPanel(
      tableOutput('contents')) 
    ) 
    ), 
    server = function(input, output){ 
     output$contents <- renderTable({ 
     inFile <- input$file1 

     if(is.null(inFile)) 
      return(NULL) 
     file.rename(inFile$datapath, 
        paste(inFile$datapath, ".XLS", sep="")) 
     read_excel(paste(inFile$datapath, ".XLS", sep=""), 1) 
     }) 
    } 
) 
) 

Nicht eine Excel-Datei Warnung ("xlsx."): Fehler in read_fun: Fehler beim Öffnen/var/Ordner/df/5cr7h6td3432hn68rplrj6lm0000gn/T // RtmpohK8Zl/2f5ccd8bfa3742ad3ec38aef/0.XLS.XLS

1- Warum es ist nicht eine Excel-Datei? Ich kann diesen Pfad oder Ordner nicht erkennen. Der Name der Datei und der Ordner unterscheiden sich von dem, was ich in diesem Fehler sehe.

2- Gibt es eine Möglichkeit, mehrere Dateien in einem Verzeichnis zu öffnen?

+0

Es sieht so aus, als ob Sie ".xls" zweimal eingefügt haben und "0.xls.xls" also keine Datei ist. –

+0

Ich versuchte read_excel (einfügen (inFile $ datapath, sep = ""), 1) und es hat nicht funktioniert. – user91

+0

Es funktionierte, wenn ich read_excel in read.table() änderte – user91

Antwort

0

Das funktioniert gut für mich.

library(shiny) 
library(readxl) 

runApp(
    list(
     ui = fluidPage(
      titlePanel("Use readxl"), 
      sidebarLayout(
       sidebarPanel(
        fileInput('file1', 'Choose xlsx file', 
           accept = c(".xlsx") 
          ) 
        ), 
       mainPanel(
        tableOutput('contents')) 
       ) 
      ), 
     server = function(input, output){ 
      output$contents <- renderTable({ 
       inFile <- input$file1 

       if(is.null(inFile)) 
        return(NULL) 
       file.rename(inFile$datapath, 
          paste(inFile$datapath, ".xlsx", sep="")) 
       read_excel(paste(inFile$datapath, ".xlsx", sep=""), 1) 
      }) 
     } 
     ) 
    ) 
+0

Es arbeitete mit xlsx Datei. Das Problem wurde jedoch gelöst, indem read.table() verwendet wurde. – user91