RHandsontable Неверное преобразование ввода, когда используется формат - PullRequest
0 голосов
/ 11 сентября 2018

У меня возникла специфическая проблема с RHandsontable (версия: 0.3.6). Проблема, с которой я сталкиваюсь, связана с преобразованием входных данных из пользовательского интерфейса. Когда вводятся числовые значения (x), они сохраняются правильно. Однако, когда вводятся процентные значения (x%), все значения, кроме Zeroeth Percents (0%, 0,0%, 0,00% и т. Д.), Сохраняются правильно. Нулевые проценты преобразуются в значения NULL, как видно из загрузок Excel.

Пример воспроизводимого снимка

Прикрепляем воспроизводимый пример наблюдаемого поведения.

library(shiny)
library(openxlsx)
library(rhandsontable)

ui <- fluidPage(
      br(),
      rHandsontableOutput("table"),
      br(),
      downloadButton("download","Download"))

server <- function(input, output, session) {

   output$table <- renderRHandsontable({

   df <- data.frame("Growth" = c(0.1,0.02,0.06,0.24,0.08))

   rhandsontable(df, rowHeaders = NULL,colHeaders = c("Growth")) %>%
   hot_col(c("Growth"), format = "0.0%") %>%
   hot_validate_numeric(cols = c(1),min = 0.00, max = 1.00)

   })


   output$download <- downloadHandler(
   filename = function() {
   paste('Report.xlsx')
   },

   content <- function(file) {
   write.xlsx(hot_to_r(input$table),file)
   })

}

shinyApp(ui, server)

Входные данные должны быть изменены в пользовательском интерфейсе, а не в самом коде. Вы можете попробовать ввести 0% (, а не 0 ) в качестве входных данных в пользовательском интерфейсе, в экстракте Excel будет получено значение NULL, в которое вставлены «0%», «0.0%» и т. Д. Вы можете проверить мои выводы, загрузив выдержки из Excel. Это проблема, связанная с пакетом, или этот Кодекс связан? Если позже, любые указатели для отладки приветствуются.

1 Ответ

0 голосов
/ 24 января 2019

Проблема решена с помощью новейшей версии пакета rhandsontable, для получения более подробной информации посетите эту ссылку github.

https://github.com/jrowen/rhandsontable/issues/270

...