(本文档仅供参考)
问题说明
宏示例:如何写宏删除线上展示时扩展数据中的边框。
解决方案
以下是删除扩展数据边框的示例,以供参考,不同报表样式需对代码另做修改调整,若是此示例不符合项目实际应用场景,可详细描述需求发回以便进一步分析评估能否通过定制实现;
示例的excel设计图:
类型 | 对象 | 事件 |
---|---|---|
ClientSide | spreadsheetReport | onRender |
/** * 说明:此示例数据列为B列,A列为空白列,C列也为空白,仅供参考,实际报表样式需另作调整 * 类型:ClientSide * 对象:spreadsheetReport * 事件:onRender */ function main(spreadsheetReport, isAjaxRefreshCallback) { var PosList = spreadsheetReport.getExpandedPositions("B5"); //根据B5单元格扩展出来的所有单元格 if(PosList.length>0){ for(var i=0;i<PosList.length;i++){ var colIndex=spreadsheetReport.parseCellIndex(PosList[i])[1]; //获取列号 var rowIndex=spreadsheetReport.parseCellIndex(PosList[i])[0]; //获取行号 //设置A列右边框线的粗细为0,即为不显示边框线,如果不设置,则B5的左边框线还是会显示 spreadsheetReport.getCell(rowIndex,colIndex-1).style.borderRight="0px"; spreadsheetReport.getCell(PosList[i]).style.borderTop="0px"; spreadsheetReport.getCell(PosList[i]).style.borderLeft="0px"; spreadsheetReport.getCell(PosList[i]).style.borderRight="0px"; spreadsheetReport.getCell(PosList[i]).style.borderBottom="0px"; } } }
类型 | 对象 | 事件 |
---|---|---|
ServerSide | spreadsheetReport | onBeforeOutput |
/** * 类型:ServerSide * 对象:spreadsheetReport * 事件:onBeforeOutput */ function main(spreadsheetReport) { spreadsheetReport.printExpandedPositions(); }
实现效果: