easyui 复杂表头合并列

先上效果图:
在这里插入图片描述

$('#rteLogGrid').datagrid({
        url:'<%=basePath %>/orgRteLog/list',
        method:'POST',
        fitColumns:true,
        striped:true,
        columns: [
            [
                { title: '自提点编号', field: 'orgId', width: 90, align:'center',rowspan:2},
                { title: '自提点名称', field: 'orgName', width: 185, align:'left',rowspan:2},
                { title: "更新前", colspan: 4,},
                { title: "更新后", colspan: 4},
                { title: '更新人', field: 'editor', width: 110, align:'center',rowspan:2},
                { title: '更新时间', field: 'editTime', width: 140, align:'center',formatter:jsonTimeStamp,rowspan:2},
            ],
            [
                {"field":"serialNo","title":"路序",width: 80, align:'center',"rowspan":1},
                {"field":"rteNo","title":"线路名称",width: 125, align:'left',"rowspan":1},
                {"field":"driverName","title":"司机姓名",width: 90, align:'center',"rowspan":1},
                {"field":"driverPhone","title":"司机电话",width: 100, align:'center',"rowspan":1},
                {"field":"serialNo","title":"路序",width: 80, align:'center',"rowspan":1},
                {"field":"rteNo","title":"线路名称",width: 125, align:'left',"rowspan":1},
                {"field":"driverName","title":"司机姓名",width: 90, align:'center',"rowspan":1},
                {"field":"driverPhone","title":"司机电话",width: 100, align:'center',"rowspan":1}
            ]
        ]
    });

关键代码:columns里面有几个 [] 就有几行表头。。剩下的自己品吧~

EasyUI是一个流行的前端UI框架,主要用于简化Web应用的开发。POI(Apache POI)则是用于处理Microsoft Office格式文件的一个Java库,特别是在读写Excel方面。 在使用EasyUI结合POI导出数据时,如果你需要将具有相同内容的行合并成一行,这通常涉及到数据预处理和复杂的数据操作。以下是一般的步骤: 1. **数据整理**:首先,在导出之前,你需要对数据进行处理,找出那些字段值完全相同的行。这通常通过遍历数据集并比较每一行的关键字段来完成。 2. **创建工作簿和sheet**:使用POI库创建一个新的Excel工作簿,并添加工作表。 3. **合并单元格**:当找到匹配项时,使用`HSSFWorkbook`或`XSSFWorkbook`的工作表类提供的`createRow()`和`mergeCells()`方法。例如,可以创建一个新的行,然后合并所有具有相同数据的旧行所对应的。 4. **插入新行数据**:将合并后的数据插入到新的行里,确保格式正确。 5. **保存工作簿**:最后,使用`save()`方法将修改后的Excel工作簿保存到磁盘。 ```java // 假设dataList是你整理后的数据表,keyFields是你用来判断合并的字段 for (int i = 0; i < dataList.size(); i++) { Map<String, String> rowData = dataList.get(i); // 查找是否存在已经合并的行 List<Map<String, String>> mergedRows = findMergedRows(dataList, keyFields, rowData); if (!mergedRows.isEmpty()) { // 创建合并行 HSSFRow newRow = workbook.createRow(i); for (Map<String, String> mergedRow : mergedRows) { for (Entry<String, String> entry : mergedRow.entrySet()) { newRow.createCell(entry.getKey()).setCellValue(entry.getValue()); } } // 移除已合并的行 dataList.subList(i + 1, i + 1 + mergedRows.size()).clear(); i--; } else { newRow = workbook.createRow(i); // 未找到合并行,则直接创建 newRow.createCell(keyFields).setCellValue(rowData.get(keyFields)); newRow.createCell("其他").setCellValue(rowData.get("其他")); } } workbook.write(new File("output.xlsx")); // 保存文件 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值