2

我喜欢 ReporteRs 包,但是无法找到如何格式化 Flextable 并保持其大小。如果我希望一列比其他列宽 3 倍,我可以设置它,但表格不会保留 PPT 中准备好的空间。

这是来自 ReporteRs 主页的原始代码的一部分。它应该适用于安装了 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

感谢您的任何评论。

编辑:根据 David Gohel 对 Github 的评论 https://github.com/davidgohel/ReporteRs/issues/146#issuecomment-258485791

目前很难控制 Flextable 的高度。

宽度可以通过字体和列宽部分控制。

4

0 回答 0