我正在开发一个闪亮的应用程序,它需要一个带有多个工作表的Excel作为输入 . 它与xlsx库和read.xlsx函数配合得很好 . 但是,它返回以下错误:
java.lang.IllegalArgumentException: Cell index must be >= 0
我现在切换到gdata和read.xls,但每次运行模型时都会出现文件路径错误 .
我想知道是否有人之前处理过这个问题,是否有任何简单的解决方案来解决这个问题 .
编辑:
以下代码
library(shiny)
library(xlsx)
ui <- fluidPage(
fileInput("uploadFile", "XLSX file"),
verbatimTextOutput("summary")
)
server <- function(input, output) ({
dataset<-reactive({
inFile <- input$uploadFile
dat<-read.xlsx(inFile$datapath, 1)
return(dat)
})
output$summary <- renderText({summary(dataset())})
})
shinyApp(ui, server)
返回:
Error : package ‘rJava’ could not be loaded
如果,而是我使用
library(shiny)
library(readxl)
ui <- fluidPage(
fileInput("uploadFile", "XLSX file"),
verbatimTextOutput("summary")
)
server <- function(input, output) ({
dataset<-reactive({
inFile <- input$uploadFile
dat<-read_excel(inFile$datapath, sheet = 1)
return(dat)
})
output$summary <- renderText({summary(dataset())})
})
shinyApp(ui, server)
我明白了:
Error: Missing file extension.
2 回答
(使用readxl)
input$uploadFile
中的datapath列是临时文件的路径,该文件没有扩展名 . 所以 read_excel() 不知道它是什么格式 .请改用 read_xlsx() :
dat <- read_xlsx(inFile$datapath, sheet = 1)
我刚尝试了这个,它对我来说很好 .
另外,看到这个 .
https://shiny.rstudio.com/gallery/file-upload.html