如何指定flextable的宽高以生成3.5in×3.5in表格?
如何指定flextable的长宽为3.5in×3.5in?
问题描述
我有一个flextable表格,希望修改其长宽以生成一个3.5in×3.5in的表格。已尝试查找相关方法,但尚未找到便捷调整表格尺寸的方式,请问是否有人知晓指定flextable长宽的方法?
示例代码
library(flextable) # 读取数据 data(mtcars) # 创建flextable ft <- flextable(mtcars[1:10,1:11]) ft # 保存flextable ft %>% save_as_image("../PATH/NAME.png")
解决方案
flextable没有直接设置整体长宽的原生参数,但可以通过调整列宽/行高 + 保存时指定尺寸的组合方式实现3.5in×3.5in的表格:
方法1:手动分配列宽 + 保存时指定尺寸
先根据总宽度均分列宽,再调整行高匹配总高度,最后在save_as_image中直接指定目标长宽:
library(flextable) data(mtcars) ft <- flextable(mtcars[1:10,1:11]) # 均分列宽:总宽度3.5in,11列每列约0.318in ft <- ft %>% width(width = 3.5 / 11) # 调整行高:10行数据+表头,每行约0.318in ft <- ft %>% height(height = 3.5 / 11) # 保存时指定3.5in×3.5in的尺寸 ft %>% save_as_image("../PATH/NAME.png", width = 3.5, height = 3.5)
方法2:自动适配宽度 + 调整高度后保存
使用fit_to_width()让表格自动适配目标宽度,再调整行高匹配总高度:
library(flextable) data(mtcars) ft <- flextable(mtcars[1:10,1:11]) # 让表格自动适配3.5in宽度 ft <- ft %>% fit_to_width(width = 3.5) # 调整行高使整体高度达到3.5in(总行数为数据行+表头) ft <- ft %>% height(height = 3.5 / (nrow(mtcars[1:10,]) + 1)) # 保存时指定尺寸 ft %>% save_as_image("../PATH/NAME.png", width = 3.5, height = 3.5)
如果表格内容过多导致文字溢出,可配合fontsize()缩小字体,或align()调整对齐方式优化显示效果。
内容的提问来源于stack exchange,提问作者Jason Edelkind
相关产品推荐
相关产品推荐

