1. 概述
1.1 版本
报表服务器版本 |
---|
11.0 |
1.2 问题描述
有时候,同一个单元格扩展出来的值长短不一,但是相差并不是很大,希望展示的时候它们的长度可以相同,达到对齐的效果。
如下图所示,单位和姓名扩展出来的值长度不一样,经过处理后文本两端对齐。
1.3 实现思路
有 2 种方法可以实现文本两端对齐的效果,思路分别如下:
方法一:直接使用内置的单元格分散对齐功能。
方法二:使用 HTML 标签改变文字之间的间隔,使用空格拼接字符串。
2. 示例
2.1 数据准备
新建内置数据集,数据如下所示:
2.2 方法一:分散对齐实现
1)设计表格样式,将数据集中的字段拖拽到对应单元格中。在 A1 单元格中插入公式:seq(),如下图所示:
2)选中要调整的 B1 和 C1 单元格,右侧属性面板选择「单元格属性>样式>对齐」,将水平对齐修改为「分散对齐」,左右各缩进 10 ,如下图所示:
3)保存报表,分页预览后文本两端对齐效果如下图所示:
2.3 方法二:HTML标签实现
1)如下图设计表格样式。
2)选中 B2 单元格,设置「单元格属性>形态>公式形态」,添加如下公式:
if(len($$$)=4,"<div style='letter-spacing:4px;'>"+$$$+"</div>",if(len($$$)=6,"<div style='letter-spacing:-2.3px;'>"+$$$+"</div>",$$$))
注1:这里因为分析了单位分别有长度为 4、5、6 三种情况,所以保持中位数 5 长度的单位不变,4 长度的加大间隔,6 长度的缩短间隔。用户需要根据自己应用场景的实际字数进行调整。
注2:由于字体和大小等原因,加大缩短的具体数值需要根据自己的实际情况来调整。
3)B2 单元格设置使用 HTML 显示内容。
4)选中 C2 单元格,设置「单元格属性>形态>公式形态」,添加如下公式:
if(len($$$)=2,left($$$,1)+" "+right($$$,1),$$$)
注:公式中间拼接的是一个空字符,请将输入法切换到全角后再按一下空格键。
5)保存报表,分页预览后文本两端对齐效果如下图所示:
注:H5 效果使用 HTML 标签部分需要另外调整一下具体间隔。
3. 模板下载
3.1 方法一
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\分散对齐实现文本两端对齐.cpt
点击下载模板:分散对齐实现文本两端对齐.cpt
3.2 方法二
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\文本两端对齐.cpt
点击下载模板:文本两端对齐.cpt