如何使用shinyApp打开.XLS文件

时间:2017-11-04 19:53:02

标签: r excel xls shiny

我有18个(.XLS)文件,我想用Shiny打开并阅读它们。我不确定问题出在哪里。当更改accept = c(“。xlsx”)

时,我能够使用相同的代码打开(.xlsx)文件
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)
      })
    }
  )
)
  

不是excel文件       警告:read_fun出错:无法打开/var/folders/df/5cr7h6td3432hn68rplrj6lm0000gn/T//RtmpohK8Zl/2f5ccd8bfa3742ad3ec38aef/0.XLS.XLS

1-为什么它不是excel文件?我似乎无法识别这个路径或文件夹。文件名和文件夹与我在此错误中看到的不同

2-有没有办法在目录中打开多个文件?

1 个答案:

答案 0 :(得分:0)

这对我来说很好。

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)
            })
        }
        )
    )