mu婉清
2022-1-6 15:31:11
发布在问答
【可视化】
<Yonghongtech>批量设置单元格格式
问题:普通表、交叉表、自由表,这些表格组件,当行列较多的时候,如何批量设置单元格格式
解决方案:
单元格样式包括:单元格背景色、单元格字体样式(字体、字号、加粗)、单元格字体颜色、文本对齐方式、单元格边框颜色、列宽、行高等,这些都能通过脚本来设置。
使用脚本,1首先使用Locator定位区域,2再对该区域设置以上样式
1,普通表
普通表是以列来区分每个区域的,我们可以通过脚本来遍历每个列,批量设置单元格样式,脚本如下
var table1_data=getData('表1') //获取表1数据
var table1_csize=table1_data.csize() //获取表1列数
for(var i=0;i<table1_csize;i++) //遍历每列
{
var coltitle=table1_data.get(0,i) //获取该列表头名称
var loc = new Locator([coltitle, CELL, DETAIL); //根据表头名称,定位该列
var table1_color= new Color(java.awt.Color.RED); //获取红色
表1.setColWidth(loc,100) //设置列宽,普通表没必要用脚本设置行高,手动设置行高即可
//表1.setBackground(loc,table1_color) //给该列设置背景色
//var gf = new GFont("Arial", BOLD, 20);
//表1.setFont(loc,gf) //设置字体格式
//表1.setForeground(loc,table1_color) //设置字体颜色
}
2,交叉表
和普通表类似,但是由于无法自动获取每列表头名称,需要手动输入表头名称,再使用Locator定位列位置(Locator详细用法请在帮助文档中搜索查找)
3,自由表
自由表相比普通表、交叉表,更简单一些,自由表无需通过表头名称来定位区域,自由表可以直接通过
自由式表的数据区每一行 var loc=new Locator(["r-i"],ROW,DETAIL);//第一行i取0,第二行为1
自由式表的数据区每一列 var loc=new Locator(["c-i"],COL,DETAIL);//第一列i取0,第二列为1
来定位。
下边是案例脚本:
var table1_data=getData('自由式表格1') //获取自由式表格1数据
var table1_csize=table1_data.csize() //获取自由式表格1列数
var table1_size=table1_data.size() //获取自由式表格1行数
for(var i=0;i<table1_csize;i++) //遍历每列
{
var loc = new Locator(['c-'+i, COL, DETAIL); //定位列
自由式表格1.setColWidth(loc,100) //设置列宽,
}
for(var i=0;i<table1_size;i++) //遍历每行
{
var loc = new Locator(['r-'+i, ROW, DETAIL); //定位行
自由式表格1.setRowHeight(loc,100) //设置列宽,
}
|
免责声明:本文不代表本站立场,且不构成任何建议,请谨慎对待。
版权声明:作者保留权利,不代表本站立场。