如何在Quarto的Word输出中正确使用gt::as_word生成表格?
解决Quarto中gt表格通过
as_word()输出为OOXML字符串的问题 问题原因
as_word()函数生成的是OOXML格式的字符串,Quarto默认会将其视为普通文本输出,因此Word文档中只会显示原始的XML代码而非渲染后的表格。
解决方法
需要将as_word()的输出标记为原始输出内容,让Quarto直接将其传递给Word进行渲染,具体需要两步:
- 给R代码块添加
results='asis'选项,允许代码块输出原始内容而非文本。 - 将
as_word()的结果传入knitr::raw_output()函数,标记该内容为需要直接渲染的格式。
修改后的完整代码
--- title: "Untitled" format: docx --- ```{r, results='asis'} library(gt) library(dplyr) gtcars %>% select(mfr, model) %>% slice(1:2) %>% gt() %>% tab_header( title = md("Data listing from **gtcars**"), subtitle = md("`gtcars` is an R dataset") ) %>% as_word() %>% knitr::raw_output()
效果说明
修改后,Quarto会将生成的OOXML表格代码直接传递给Word,Word会自动识别并渲染成格式化的表格,而非显示原始字符串。
内容的提问来源于stack exchange,提问作者John J.
相关产品推荐
相关产品推荐

