Сохраняйте формат чисел в Excel, используя расширения кнопок - PullRequest
0 голосов
/ 19 февраля 2019

Я использую в Shiny Расширение кнопок для загрузки фигур в Excel-файл.

DTa <- data.table( 
      dataSum()[,1],
      format(round((10^-6)*dataSum()[,-1],2),nsmall = 2,decimal.mark=",",big.mark=".")
           )
   DTa<- DT::datatable( DTa,  extensions=c("Buttons"),options = list(paging = FALSE, 
                               searching = FALSE,
                               dom = 'Bfrtip',
                               #buttons = c('copy','excel')
                               buttons = list(
                                 list(
                                   extend = 'excel', 
                                   text = "Save ", 
                                   title = 'KRB'
                                 ),   list(
                                   extend = 'copy', title = 'krb'
                                 )
                               )
                               ),
                   caption=  paste("Stichtag:", 
                             as.character(sub("([0-9]{2})([0-9]{2})([0-9]{4})KRB.csv", "\\1.\\2.\\3",input$date))))

В первой части, приведенной выше, я преобразую цифры в немецкий формат , т.е. я установил , в качестве десятичного разделителя и . в качестве разделителя тысяч.Во второй части я называю extensions Buttons из DT.В Shiny фигуры выглядят следующим образом:

Shiny

Проблема: После нажатия кнопки «Сохранить» в Shiny все фигуры с, и без . имеют неправильный формат.

Excel screenshot

Например, после сохранения 34,21 становится 3,421 !Но 67.809,97 правильно!

Как сохранить формат цифр во время процесса экспорта или сохранения?

Не знаю, поможет ли это:

Когда я перехожу в режим отладки и выполняю вторую часть DTa<- DT::datatable( DTa, extensions ..., я вижу следующее:

data bevore excel extension

Как можносм. цифры в данных являются символами!

Можно ли написать функцию JavaScript в моем server.R для использования опции language.decimal ?Вот пример здесь , но я не могу использовать его точно.

1 Ответ

0 голосов
/ 21 февраля 2019

Попробуйте это

DTa<- DT::datatable(DTa, extensions=c("Buttons"), options = list(paging = FALSE, 
                                                  searching = FALSE,
                                                  dom = 'Bfrtip',
                                                  #buttons = c('copy','excel')
                                                  buttons = list(
                                                   list(
                                                        extend = 'excel', 
                                                        text = "Save ", 
                                                        title = 'KRB'
                                                        ), list(
                                                          extend = 'copy', title = 'KRB'
                                                         )
                                                        )
                                                        ),
          caption= paste("Stichtag:", 
                   as.character(sub("([0-9]{2})([0-9]{2})([0-9]{4})KRB.csv", "\\1.\\2.\\3",input$date)))
          ) %>% formatCurrency(-1,' ', digits = 2 , interval = 3, mark = ".", dec.mark = ",")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...