当报表展示的列过多的时候,默认初始化的时候隐藏部份列,当有需要的时候再点击“+”加号进行显示隐藏的列。
默认初始化的时,隐藏部分列,如下图:
点击“+”加号时显示隐藏列,如下图:
1、首先在电子表格设计器(Microsoft Office Excel)中,创建电子表格报表。
2、在浏览器的资源定制节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面,双击该节点进入报表宏编辑界面。
3、在报表宏界面新建客户端模块。在弹出的新建模块对话框中,选择对象为spreadSheetReport、事件为onRender、并把下面宏代码复制到代码编辑区域。
类型 | 对象 | 事件 |
---|---|---|
ClientSide | spreadsheetReport | onRender |
function main(spreadsheetReport) { var cell = spreadsheetReport.getCell("A4"); cell.collapsed = false; var expander = cell.ownerDocument.createElement("SPAN"); expander.innerHTML = "+"; expander.style.cursor = "pointer"; cell.insertBefore(expander, cell.firstChild); var table = cell.parentNode.parentNode.parentNode; var width = parseInt(table.offsetWidth); expander.onclick = function() { if (cell.collapsed) { expander.innerHTML = "-"; var rowCount = spreadsheetReport.getRowCount(); for (var i = 0; i < rowCount;) { var td0 = spreadsheetReport.getCell(i, 0); var td1 = spreadsheetReport.getCell(i, 1); var td2 = spreadsheetReport.getCell(i, 2); if (td0 == td1) { td0.colSpan++; if (td0 == td2) { td0.colSpan++; } } else { td1.style.display = ""; td2.style.display = ""; } i += td1.rowSpan; } cell.collapsed = false; table.style.width = width + cell.hiddenWidth + "px"; } else { expander.innerHTML = "+"; var rowCount = spreadsheetReport.getRowCount(); var w = 0; for (var i = 0; i < rowCount;) { var td0 = spreadsheetReport.getCell(i, 0); var td1 = spreadsheetReport.getCell(i, 1); var td2 = spreadsheetReport.getCell(i, 2); if (td0 == td1) { td0.colSpan--; if (td0 == td2) { td0.colSpan--; } } else { td1.style.display = "none"; td2.style.display = "none"; if (w == 0) { w += td1.offsetWidth + td2.offsetWidth; } } i += td1.rowSpan; } if (!cell.hiddenWidth) cell.hiddenWidth = w; table.style.width = width - w + "px"; cell.collapsed = true; } } expander.onclick(); } |
通过spreadsheetReport.elem_btnPrint.parentNode.appendChild 方法,将新创建的按钮添加到工具栏的尾部。