2017-10-26 4 views
2

良い一日の人々、R - ReporteRsパッケージ - 動的値を持つ単語テンプレート

私は単語ベースのレポート自動化タスクに取り組んでいます。これらのレポートは、基本的に標準的なテキスト、ダースなどの図表、ロジックに基づいて作成する必要がある数値/トレンドのテキスト値です。トレンドテキスト、数値またはチャートは、バックエンドデータベースから生成されます。

データベースを使用してグラフを使用して空のドキュメントを作成することができます。使用したRパッケージは、ReporteRs、RODBC、役員および対応する依存パッケージggplot2 for chartsです。 しかし、私が達成したいのは、グラフとこれらの数値を置くことができるいくつかの種類のプレースホルダを備えたワードドキュメントテンプレートを用意することです。

私は、誰もがこの作業にアプローチする方法を助言することができ

doc <- docx(title="my doc") 
    mychart <- ggplot(.....) 
    doc <- addPlot(doc, fun=print, x = mychart) 
    writeDoc(doc, filename) 

を次のように基本的なコードをしました。私はdocxでのテンプレートパラメータの使用を見ましたが、プレースホルダに値を入れたり、Word文書内の特定のプレースホルダにグラフを配置したりする適切な例は見つかりませんでした。

私はそれをはっきりと説明したと思いますが、わからない場合は教えてください。

答えて

0

私はそれを最終的に達成する方法を考え出しました。

MS-Wordは、プレースホルダをドキュメントに配置してブックマークすることで、値/データ/イメージをその場所に配置できるようにします。

通常のワードドキュメント(ワードテンプレートではありません)を作成し、必要に応じてブックマークされたプレースホルダとともに静的コンテンツを追加できます。 ブックマークを追加する方法を知りたい場合はhereを参照してください.Wordは既定で既存のブックマークを表示せず、ファイル - >オプション - >ブックマークを表示するチェックボックスを選択すると、[your_bookmark]が角括弧で囲まれます。

Rの次の、あなたはそのプレースホルダーを置く場所置換チャートで新しいファイルが表示されるはずのコード

doc <- docx(title="title", template="c://above_template.docx") 
doc = addPlot(doc, x=myChartVariable, bookmark="your_chart_bookmark) 
writeDoc(doc, "c://new_doc_file_path.docx:) 

次試してください。

0

RではなくVBAを使用することをお勧めします.GoogleのDocVariablesに関するGoogleの調査をしてください。いくつかのDocVariablesをWordテンプレートに追加し、分析をExcelに保存して、Excelの内容をWordのDocVariablesにプッシュします。 Excelで動作する以下のスクリプトを使用して、すべて機能させるようにします。

Sub PushToWord() 

Dim objWord As New Word.Application 
Dim doc As Word.Document 
Dim bkmk As Word.Bookmark 
sWdFileName = Application.GetOpenFilename(, , , , False) 
Set doc = objWord.Documents.Open(sWdFileName) 
'On Error Resume Next 

objWord.ActiveDocument.variables("BrokerFirstName").Value = Range("BrokerFirstName").Value 
objWord.ActiveDocument.variables("BrokerLastName").Value = Range("BrokerLastName").Value 
objWord.ActiveDocument.variables("Ryan").Value = Range("Ryan").Value 


objWord.ActiveDocument.Fields.Update 

'On Error Resume Next 
objWord.Visible = True 

End Sub 

最後に、ExcelからWordへの参照を追加します。 Tools > References > Microsoft Word xxx Object Library.

+0

これはVBAで行われたことは間違いないでしょう、私は時間を押していましたが、VBAで行うことは面倒な作業であり、チャートをフォーマットしたり、セル/範囲を操作したりするなどです。 Rでは、VBAで書かなければならないよりも少ないコード行で、かなり速く実行できました(私はそれを嫌うわけではありません)。あなたの入力をありがとう。 –

関連する問題