r语言 - 如何修复下载中的"Error in flextable: invalid col_keys, flextable support only syntactic names"汉勒



我有闪亮的服务器如下:

shinyServer(function(input, output){
t1 <- reactive({
tab1 <- data.table("Fields"=c("Contact Person",
"Cost Center:",
"Department:",
"Date:"
"Detailed information" = c(input$`Contact Person`,
input$`Cost`,
input$`Department`,
format(input$`Date`[1])

tab1
})
output$tbl1 <- renderTable({
if (is.null(t1()))
return(NULL)
t1()
})

output$download1 = downloadHandler(

filename = function(){
paste("InternalRequest_",Sys.Date(),".docx", sep ="")
},
content = function(file){
ft <- flextable(t1())
ft <- theme_vanilla(ft)
doc = read_docx(path="B:\Desktop\Internal Request.docx")
doc<-doc%>%cursor_bookmark("DATA")
doc<-body_add_flextable(doc, ft, pos = "on")
print(doc, file = file)
})
})

下载不起作用,我收到消息"警告:flextable 中的错误:无效col_keys,flextable 仅支持语法名称"。谁能帮我解决问题?谢谢!

我根据我的理解给出我的建议。是的,在将反应式数据集传递到 flextable 之前,我们应该保留正确的 colnames。例如,在您的情况下,反应式数据集的同名包含空格(详细信息(。为了制作正确的别名,我正在使用看门人包中的函数clean_names((。使用以下代码

library(janitor)
t1() %>% 
clean_names() %>%
flextable() %>% 
theme_vanilla() %>%
set_header_labels(fields = "Fields",detailed_information = "Detailed information") -> ft

而不是

ft <- flextable(t1())
ft <- theme_vanilla(ft)

在您的下载处理程序

谢谢。

相关内容

最新更新