表格头部合并,数据和表头中间插入合计和样式合并

在做项目时其中一个页面要求和Excel格式一样的页面

html数据,大概写了几个案例如下

 <el-table v-loading="loading" :data="tableList" :span-method="mergeRow">
           //:span-method="mergeRow" 用于合并第一行
            <el-table-column label="序号" align="center" width="55" type="index">
                <template slot-scope="scope">
                       //判断在第一行插入数据
                    <div v-if="scope.$index == 0" label="" style="font-weight:bolder;">
                       合计</div> 
                     //第二行排序
                    <div v-else>{{ (scope.$index) }}</div>
                </template> 
            </el-table-column>
             <el-table-column label="名称" align="center" prop="systemName">
                <template slot-scope="scope">
                    <div v-if="scope.$index == 0"> 
                       
                    </div>
                  //第二行名称
                    <div v-else>{{ (scope.row.Name) }}</div>
                </template>
            </el-table-column>
           //表头费用的第一行
         <el-table-column :label="'总费用:'+amounttoList.sysBillingCombinSum+'(元)'" 
          align="center">
           //表头费用的第二行
               <el-table-column :label="amounttoList.month1" align="center">
            //表头费用的第三行
                  <el-table-column prop="NumNo1" label="数量" width="80"align="center">
                       <template slot-scope="scope">
                       //判断在第一行插入数据
                           <div v-if="scope.$index == 0" style="font- 
                                  weight:bolder;"> 
                                   合计
                            </div>
                            <div v-else>{{ (scope.row.NumNo1) }}</div>
                       </template>
                  </el-table-column>
               </el-table-column> 
            </el-table-column>
</el-table>
//第一行合并的样式  
mergeRow({ row, column, rowIndex, columnIndex}){
            /**
     * 当前行 row
     * 当前列 column
     * 当前行号 rowIndex
     * 当前列号 columnIndex
       colspan是跨列
       rowspan是跨行
     */
            if (rowIndex === 0) { // 判断当前行号
                    if(columnIndex == 3){//判断当前列号
                        return {
                        rowspan: 1, colspan: 3};
                    }
                    if (columnIndex == 4) { 
                        return {rowspan: 0, colspan: 0}
                    }
                    if (columnIndex == 5) { 
                    return {
                        rowspan: 0, colspan: 0}
                    }
                    if (columnIndex == 6) { 
                        return {rowspan: 1, colspan: 2}
                    }
                    if (columnIndex == 7) { 
                        return {rowspan: 0, colspan: 0}
                    }
                    if (columnIndex == 9) { 
                        return {rowspan: 1, colspan: 2}
                    }
                    if (columnIndex == 10) { 
                        return {rowspan: 0, colspan: 0}
                    }
                    if (columnIndex == 12) { 
                        return {rowspan: 1, colspan: 2}
                    }
                    if (columnIndex == 13) { 
                        return {rowspan: 0, colspan: 0}
                    }
                
            }
   
        },

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值