zoukankan      html  css  js  c++  java
  • merge cell,报表开发解决合并列单元格问题

    • 需求

    报表开发解决合并列单元格问题

    • 核心代码

    <script>

    debugger;
    mc("dnd-example", 0, 0, 0);


    function mc(tableId, startRow, endRow, col) {
    var tb = document.getElementById(tableId);
    if (col >= tb.rows[0].cells.length) {

    return;
    }
    //获取表行数
    if (col == 0) { endRow = tb.rows.length - 1; }

    for (var i = startRow; i < endRow; i++) {

    if (tb.rows[startRow].cells[col].innerText == tb.rows[i + 1].cells[0].innerText || tb.rows[startRow].cells[0].innerText == tb.rows[i + 1].cells[0].innerText) {

    if (tb.rows[startRow].cells[col].innerText == tb.rows[i + 1].cells[0].innerText) {
    tb.rows[i + 1].removeChild(tb.rows[i + 1].cells[0]);
    tb.rows[startRow].cells[col].rowSpan = (tb.rows[startRow].cells[col].rowSpan | 0) + 1;
    }
    else {
    tb.rows[i + 1].removeChild(tb.rows[i + 1].cells[0]);
    tb.rows[startRow].cells[0].rowSpan = (tb.rows[startRow].cells[0].rowSpan | 0) + 1;
    }
    //
    if (i == endRow - 1 && startRow != endRow) {
    mc(tableId, startRow, endRow, col + 1);
    }

    }
    //当前列不合并,执行下一列
    else {
    if (col < 2) {
    mc(tableId, startRow, i + 0, col + 1);
    }
    startRow = i + 1;

    }
    }
    }
    </script>

    • 效果

  • 相关阅读:
    Makefile 运行
    fortran中//表示什么啊?双斜杠
    如何设置EXCEL打印范围
    Makefile学习_简介
    小白初学Ioc、DI、Castle Windsor依赖注入,大神勿入(不适)
    小白初学ABP框架,着实累啊
    职场初体验
    3.8.1 块作用域
    3.8 控制流程
    3.7.3 文件输入与输出
  • 原文地址:https://www.cnblogs.com/MatureMan/p/8623222.html
Copyright © 2011-2022 走看看