我正在制作仪表板。基本上,我从数据库中提取所选信息,然后我想在单词模板中显示。我用一个表(2行,3列)设置模板。在每个单元格中我放了一个书签。然后,使用R包ReporteRs,我根据书签将R中的特定信息放入模板中的单元格中。
问题:我似乎无法将表插入模板的单元格中。
尝试:我认为这可能是由于桌子的大小(因为我在插入数字时遇到了这个大小的问题),但事实并非如此。
以下是错误示例。为了运行它,您必须创建一个Word文档,其中包含一个名为' test'的单元格中的书签。
doc = docx( title = "Dashboard",template="H:\\test.docx")
myt <-FlexTable(cars[c(1:10),])
doc <-addFlexTable(doc,myt,bookmark="test")
writeDoc(doc, "H:\\testresult.docx")
如果您在表格外创建书签并将表格分配给新书签,它似乎可以正常工作。
有谁知道如何将表格(数据框作为表格)插入模板的任何单元格中?
答案 0 :(得分:2)
如果使用参数书签,内容(图表,段落或图像)将替换包含书签的整个段落。
表的行为不同:在包含书签的段落之后添加表。解决方法是在模板的单元格中添加书签段落之后添加一个段落。然后使用deleteBookmark
删除包含书签的段落。
doc <- docx( title = "Dashboard",template="H:\\test.docx")
myt <- FlexTable(cars[c(1:10),])
# make sure there is one new paragraph after the paragraph that contains 'test'
# add the FlexTable just after the paragraph containing bookmark 'test'
doc <- addFlexTable(doc,myt,bookmark="test")
# then delete the paragraph containing bookmark 'test'
deleteBookmark(doc, bookmark= "test")
writeDoc(doc, "H:\\testresult.docx")
您可以使用带有列的部分(最后是列分隔符):
doc = docx( )
doc = addSection(doc, landscape = TRUE, ncol = 2 )
doc = addPlot( doc = doc, fun = function() {
barplot( 1:8, col = 1:8 )
}, width = 3, height = 3, pointsize = 5)
doc = addColumnBreak(doc )
doc = addFlexTable(doc, FlexTable(head(iris) ) )