2017-08-11 5 views
0

私は入力として複数のシートを持つExcelが必要な光沢のあるアプリを開発中です。 xlsxライブラリとread.xlsx関数とうまくいっていました。Shiny Appの入力として.xlsxファイルを使用

java.lang.IllegalArgumentException: Cell index must be >= 0 

は、私が今GDATAとread.xlsに切り替えましたが、私は、ファイルパスのエラー私はモデルを実行するたびに取得する:しかし、それは次のようなエラーが返されます。

この問題を解決するための簡単な解決策が存在するかどうかは、以前にこの問題に取り組んでいたのだろうかと思います。

EDIT:

次のコード

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. 
(readxlを使用)
+0

このエラーの原因となったコードの一部を投稿することはできますか? – useR

+0

は{readxl}パッケージ –

+0

を見ていますので、うまくいきました。そして突然それは*全く働きませんでした。だから何か変わった。何?それは一部のXLSファイルにのみありますか?それは光沢の外で働くのですか?いくつかのパッケージまたはRがアップグレードされていますか? – Spacedman

答えて

0

データパス列は拡張子がない一時ファイルへのパスです。だからread_excel()はどの形式であるかわからない。

利用代わりread_xlsx()

dat <- read_xlsx(inFile$datapath, sheet = 1)

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

また、これを参照してください。

​​

関連する問題