EasyPoi - 合并单元格


EasyPoi的简单使用例子,合并指定单元格

  //dataMap 和 numVOS排序方式相同
public void excelDownload2(Map<String, Object> dataMap, TemplateExportParams params, String fileName, List<NumVOS> numVOS, HttpServletResponse response) throws IOException {
try{
OutputStream out = response.getOutputStream();
Workbook workbook = ExcelExportUtil.exportExcel(params, dataMap);
Sheet sheet =workbook.getSheetAt(0);
      //开始合并的行数
Integer startRow = 2;
      //结束合并的行数
Integer endRow = 2;
      //开始合并的列数
Integer startCol = 2;
for (NumVOS branchNumVO : numVOS) {
        //结束合并的列数 数据所占用的格数
Integer endCol = startCol + numVOS.getNum() - 1;
         //将数据写入单元格内
sheet.getRow(startRow).getCell(startCol).setCellValue(numVOS.getName());
if (!startRow.equals(endRow) || !startCol.equals(endCol)) {
//合并单元格
CellRangeAddress region = new CellRangeAddress(startRow, endRow, startCol, endCol);
sheet.addMergedRegion(region);
}
//设置下个数据所在列数(同行合并,没设置行数)
startCol = endCol + 1;
}
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") );
ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.write(baos);
response.setHeader("Content-Length", String.valueOf(baos.size()));
out.write( baos.toByteArray() );
} catch (Exception e) {
logger.error("导出失败", JSON.toJSONString(dataMAp),e);
}
}


模板如下:

 

输出结果如下:

 

 

 




免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM