2

私は ReporteRs パッケージが好きですが、Flextable をフォーマットしてそのサイズを維持する方法を見つけることができません。1 つの列を他の列よりも 3 倍広くしたい場合は、それを設定できますが、テーブルは PPT で準備されたスペースを保持しません。

これは、ReporteRs ホーム Web サイトの元のコードの一部です。ReporteRsパッケージと出力パスがインストールされている人なら誰でも機能するはずです。

library( ReporteRs )

mydoc <- pptx( )

mydoc <- addSlide( mydoc, "Two Content" )
mydoc <- addTitle( mydoc, "First 10 lines of iris" )

MyFTable <- FlexTable(iris[1:10,] )
mydoc <- addFlexTable( mydoc, MyFTable )

mydoc <- addParagraph( mydoc, value = c("", "Hello World!") )

writeDoc(mydoc, "C:/DATAOLD/REPORTERS/REP.pptx" )

それはうまく機能し、出力スライドは次のようになります。

出力1

列幅を変更した後、テーブルが準備されたスペースに収まりません

library( ReporteRs )

mydoc <- pptx( )

mydoc <- addSlide( mydoc, "Two Content" )
mydoc <- addTitle( mydoc, "First 10 lines of iris" )

twidth<-c(1,1,1,1,3)
MyFTable <- FlexTable(iris[1:10,] )
MyFTable <- setFlexTableWidths( MyFTable, widths = twidth)
mydoc <- addFlexTable( mydoc, MyFTable )

mydoc <- addParagraph( mydoc, value = c("", "Hello World!") )

writeDoc(mydoc, "C:/DATAOLD/REPORTERS/REP.pptx" )

出力2

特別なサイズパラメータが存在しない限り、テーブルのサイズはプレースホルダーのサイズに合わせて常に変更されると信じていましたが、テーブルが単純に広くなったことは理解できます。

この問題の簡単な解決策はありますか? 一部の列を他の列よりも広くし、テーブル全体をプレースホルダー内に保持する必要があるだけです。twidth の再スケーリング

twidth<-twidth*length(twidth)/sum(twidth)

一部の列が狭すぎるため、解決策ではありません。

出力3

コメントありがとうございます。

編集: Github に関する David Gohel のコメントによると https://github.com/davidgohel/ReporteRs/issues/146#issuecomment-258485791

現時点では、Flextable の高さを簡単に制御することはできません。

幅は、フォントと列の幅によって部分的に制御できます。

4

0 に答える 0