【问题标题】:Keep the format of numbers in Excel using Buttons extensions使用按钮扩展保持 Excel 中的数字格式
【发布时间】:2019-07-13 03:48:04
【问题描述】:

我正在使用 Shiny Buttons extension 下载 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))))

在上面的第一部分中,我将数字转换为德语格式,即将, 设置为小数分隔符,. 设置为千位分隔符。在第二部分中,我调用了DTextensions Buttons。 在 Shiny 中,数字如下所示:

问题:在 Shiny 中按下保存按钮后,所有只有, 和没有. 的图形格式错误。

比如保存后34,21变成3.421!但是 67.809,97 是正确的!

如何在导出或保存过程中保持图形的格式?

不知道有没有帮助:

当我进入调试模式并执行第二部分 DTa&lt;- DT::datatable( DTa, extensions ... 时,我看到以下内容:

可以看到数据中的数字是字符!

是否可以在我的server.R 中编写一个JavaScript 函数来使用language.decimal 选项?有一个例子here,但是我不能完全使用它。

【问题讨论】:

  • 可能输出为 CSV?
  • 我也尝试了 CSV 格式的输出,但是看起来不太好
  • 你能为dataSum提供可重现的例子吗?

标签: r datatables shiny data.table dt


【解决方案1】:

试试这个

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 = ",")

【讨论】:

  • 好主意 excel 底部现在运行良好,但我在复制底部遇到问题! :(
猜你喜欢
  • 2018-08-10
  • 1970-01-01
  • 2018-05-13
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
  • 2011-12-05
相关资源
最近更新 更多