R:使用ReporteRs在表格中插入表格

时间:2014-10-13 04:21:48

标签: r reporters

我正在制作仪表板。基本上,我从数据库中提取所选信息,然后我想在单词模板中显示。我用一个表(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")

如果您在表格外创建书签并将表格分配给新书签,它似乎可以正常工作。

有谁知道如何将表格(数据框作为表格)插入模板的任何单元格中?

1 个答案:

答案 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) ) )