页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

代码块
languagejs
firstline1
linenumberstrue
function main(spreadsheetReport) {
    var detail = false;
    var cell = spreadsheetReport.getCell("A2"); //点击的单元格
    cell.style.cursor = "pointer"; //鼠标变手
    var A3List = spreadsheetReport.getExpandedPositions("A3"); //获取A3的位置
    var A3First = spreadsheetReport.parseCellIndex(A3List[0]); //获取A3第一个
    var A3Row = spreadsheetReport.getCell(A3First[0], A3First[1]).parentNode; //获取A3所在的TR
    var A7List = spreadsheetReport.getExpandedPositions("A7"); //获取所有A7的位置
    var A7Last = spreadsheetReport.parseCellIndex(A7List[A7List.length - 1]); //A7最后一个
    var A7Row = spreadsheetReport.getCell(A7Last[0], A7Last[1]).parentNode; //获取A7所在的TR
    var A8List = spreadsheetReport.getExpandedPositions("A8"); //获取A8的位置
    var A8First = spreadsheetReport.parseCellIndex(A8List[0]); //获取A8第一个
    var A8Row = spreadsheetReport.getCell(A8First[0], A8First[1]).parentNode; //获取A8所在的TR
    var A10List = spreadsheetReport.getExpandedPositions("A10"); //获取所有A10的位置
    var A10Last = spreadsheetReport.parseCellIndex(A10List[A10List.length - 1]); //A10最后一个
    var A10Row = spreadsheetReport.getCell(A10Last[0], A10Last[1]).parentNode; //获取A3所在的TR
 
    cell.onclick = function() {
        if (detail) {
            var tr = A3Row;
            //循环显示从A3-A7的所有行
            while (tr && tr != A7Row) {
                tr.style.display = "";
                tr = tr.nextSibling.nextSibling;
            }
            A7Row.style.display = "";
            var tr = A8Row;
            //循环隐藏从A8-A10的所有行
            while (tr && tr != A10Row) {
                tr.style.display = "none";
                tr = tr.nextSibling.nextSibling;
            }
            A10Row.style.display = "none";
            cell.innerText = "显示明细";
            detail = false;
        } else {
            var tr = A3Row;
            //循环隐藏从A3-A7的所有行
            while (tr && tr != A7Row) {
                tr.style.display = "none";
                tr = tr.nextSibling.nextSibling;
            }
            A7Row.style.display = "none";
            var tr = A8Row;
            //循环显示从A8-A10的所有行
            while (tr && tr != A10Row) {
                tr.style.display = "";
                tr = tr.nextSibling.nextSibling;
            }
            A10Row.style.display = "";
            cell.innerText = "显示汇总";
            detail = true;
        }
    }
    cell.onclick();
}