有没有人知道如何将有光泽的数据表(DT :: renderDataTable)输出保存为.png?即,我想创建一个类似于this button的按钮?
例如,任何人都可以定义一个按钮来将此表保存为png:
---
output: html_document
runtime: shiny
---
```{r setup, echo=FALSE}
library(DT)
DT::renderDataTable({
datatable(iris) %>% formatStyle(
'Sepal.Width',
backgroundColor = styleInterval(3.4, c('gray', 'yellow'))
)
})
```
答案 0 :(得分:1)
您的主要任务是如何将表格转换为PDF格式。 Here are two SO questions以及如何做到这一点的答案。
假设您使用这些参考问题计算出这一部分(这与闪亮无关)。我接近下一步的方法是首先将路径返回到您从创建PDF的函数创建的PDF
createPDF <- function(df) {
# create a pdf
return(pdf_file)
}
然后在Shiny中你使用downloadHandler
,你只需要将PDF复制到你提供给downloadHandler
的文件名中。像这样:
### in UI
downloadButton('downloadPdf', 'Download table')
### in server
output$downloadPdf <- downloadHandler(
filename = function() {
"table.pdf"
},
content = function(file) {
file <- createPDF(df)
file.copy(file, "table.pdf") # or something like this
}
)
我没有尝试过,但这就是我想尝试的事情