R ReporteRs - 用于ppt的Flextable - 如何更改列宽并保持整个大小

时间:2016-11-01 15:02:14

标签: r reporters

我喜欢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" )

效果很好,输出幻灯片如下所示:

Output1

更改列宽后,表格不再适合为其准备的空间

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

Output2

我可以理解,现在表格更宽......尽管我认为它的大小总是会改变以适合占位符的大小,除非存在特殊的大小参数。

这个问题有什么简单的解决方案吗?我只需要一些列比其他列宽,并将整个表保留在占位符中。 重新调整宽度

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

不是解决方案,因为有些列太窄了。

Output3

感谢您提出任何意见。

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

目前无法轻易控制Flextable的高度。

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

0 个答案:

没有答案