我们有时候会需要在电子表格报表中根据参数值设置某一行或者某一列隐藏。可以参照如下方法进行设置。效果演示如下:
在未添加该宏时,报表展示如下:
添加了宏后,当参数的值为“隐藏行”时,隐藏行所在的一行被隐藏;当参数的值为"隐藏列"时,隐藏列所在的一行被隐藏。示例效果如下:
1.smartbi版本:V9
2.客户端:PC
3.浏览器:IE11、谷歌浏览器(Chrome)、火狐浏览器(Firefox)
1、首先在电子表格设计器(Microsoft Office Excel)中,创建电子表格报表。
2、在浏览器的资源定制节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面。
3、在报表宏界面新建服务端模块。在弹出的新建模块对话框中,选择对象为spreadSheetReport、事件为onBeforeOutput、并把下面宏代码复制到代码编辑区域,并作相应的修改
宏类型
类型 | 对象 | 事件 |
---|---|---|
ServerSidee | spreadsheetReport | onBeforeOutput |
function main(spreadsheetReport) { var sheet = spreadsheetReport.workbook.getWorksheets().get(0); //获取当前sheet,从0开始计数 var value = spreadsheetReport.getParameterValue("隐藏"); //获取参数值 if (value == "隐藏行") { sheet.cells.getRow(7).setHeight(0); //设置第八行隐藏,从0开始计数 } if (value == "隐藏列") { sheet.cells.getColumn(5).setWidth(0); //设置第六列隐藏,从0开始计数 } } |
通过spreadsheetReport.workbook.getWorksheets().get(0) 方法获取需要设置隐藏效果的sheet。
报表资源:migrate.xml
使用该服务端宏,则隐藏行列时,导出电子表格为Excel等时,相应的行列也会被隐藏。