0

ダッシュボードを作成中です。基本的に、データベースから選択した情報を引き出して、Word テンプレートに表示します。テーブル (2 行、3 列) を使用してテンプレートを設定しました。各セルにブックマークを付けました。次に、R パッケージ ReporteRs を使用して、R からの特定の情報を、ブックマークに基づいてテンプレート内のセルに入れました。

問題: テンプレートのセルにテーブルを挿入できないようです。

試してみました:テーブルのサイズが原因である可能性があると思いました(図を挿入するときにサイズが問題になることを経験したため)が、そうではありません。

以下は、エラーのある例です。これを実行するには、'test' というセルの 1 つにブックマークを付けた表を含む Word 文書を作成する必要があります。

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")

次に、テーブルの外にブックマークを作成し、テーブルを新しいブックマークに割り当てると、うまくいくようです。

テンプレートの任意のセルにテーブル (テーブルとしてのデータ フレーム) を挿入する方法を知っている人はいますか?

4

1 に答える 1

2

引数の bookmark が使用されている場合、コンテンツ (プロット、段落、または画像) は、ブックマークを含む段落全体を置き換えます。

表の場合は動作が異なります。表は、ブックマークを含む段落の後に追加されます。回避策は、テンプレートのセルでブックマークされた段落の後に段落を追加することです。次に、 を使用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) ) )
于 2014-10-13T20:23:06.110 に答える