Get selected rows of Rhandsontable

前端 未结 2 1826
Happy的楠姐
Happy的楠姐 2020-12-09 19:45

I am using rhandsontable in a Shiny App and I would like to know how to use the getSelected() method of Handsontable in this case, as I intend to apply changes on the data.f

2条回答
  •  悲哀的现实
    2020-12-09 20:33

    You can obtain the selected row, column, range, and cell values, as well as the edited cells using selectCallback=TRUE. You can edit a cell by double-clicking on it, and accept the changes by pressing "return" or "enter".

    Minimal example:

    library(shiny)
    library(rhandsontable)
    ui=fluidPage(
      rHandsontableOutput('table'),
      verbatimTextOutput('selected')
    )
    
    server=function(input,output,session)({
      df=data.frame(N=c(1:10),L=LETTERS[1:10],M=LETTERS[11:20])
      output$table=renderRHandsontable(
        rhandsontable(df,selectCallback = TRUE,readOnly = FALSE)
      )
      output$selected=renderPrint({
        cat('Selected Row:',input$table_select$select$r)
        cat('\nSelected Column:',input$table_select$select$c)
        cat('\nSelected Cell Value:',
            input$table_select$data[[
              input$table_select$select$r]][[input$table_select$select$c]])
        cat('\nSelected Range: R',input$table_select$select$r,
            'C',input$table_select$select$c,':R',input$table_select$select$r2,
            'C',input$table_select$select$c2,sep="")
        cat('\nChanged Cell Row Column:',input$table$changes$changes[[1]][[1]],
            input$table$changes$changes[[1]][[2]])    
        cat('\nChanged Cell Old Value:',input$table$changes$changes[[1]][[3]])
        cat('\nChanged Cell New Value:',input$table$changes$changes[[1]][[4]])
      })
    }) # end server
    shinyApp(ui = ui, server = server)
    

提交回复
热议问题