原文链接:Springboot导出excel,合并单元格示例

更多文章,欢迎访问:Java知音,一个专注于技术分享的网站

以下用一个示例来说明springboot如何导出数据到excel。

首先引入Maven依赖:

<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>3.17</version></dependency>

导出接口方法:

@RequestMapping("/exportExcel")public void exportExcel(HttpServletResponse response, HttpServletRequest request) throws Exception {//接收参数String ids = request.getParameter("ids");List<ProjectInfoVo> result = projectInfoService.getProByIds(ids);//查询数据,实际可通过传过来的参数当条件去数据库查询,在此我就用空集合(数据)来替代List<ProjectInfoVo> list = new ArrayList<>();//创建poi导出数据对象SXSSFWorkbook sxssfWorkbook = new SXSSFWorkbook();//创建sheet页SXSSFSheet sheet = sxssfWorkbook.createSheet("开复工项目");CellRangeAddress region1 = new CellRangeAddress(0, 1, (short) 0, (short) 12);//参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列sheet.addMergedRegion(region1);SXSSFRow headTitle = sheet.createRow(0);headTitle.createCell(0).setCellValue("重点工程项目计划表");//创建表头SXSSFRow headRow = sheet.createRow(4);//设置表头信息headRow.createCell(0).setCellValue("序号");headRow.createCell(1).setCellValue("项目分类");headRow.createCell(2).setCellValue("投资分类");headRow.createCell(3).setCellValue("牵头单位");headRow.createCell(4).setCellValue("工程名称");headRow.createCell(5).setCellValue("建设单位");headRow.createCell(6).setCellValue("建设地点");headRow.createCell(7).setCellValue("建设内容");headRow.createCell(8).setCellValue("总投资");headRow.createCell(9).setCellValue("手续进展及工程现状");headRow.createCell(10).setCellValue("是否XXXX项目");headRow.createCell(11).setCellValue("开工时间");headRow.createCell(12).setCellValue("完工时间");String yihui = null;// 遍历上面数据库查到的数据for (ProjectInfoVo pm : result) {if (pm.getPrjType3() == 0) {yihui = "是";} else {yihui = "否";}SXSSFRow dataRow = sheet.createRow(sheet.getLastRowNum() + 1);dataRow.createCell(0).setCellValue(pm.getPrjId());dataRow.createCell(1).setCellValue(pm.getProjectTypeName());dataRow.createCell(2).setCellValue(pm.getPrjType4Name());dataRow.createCell(3).setCellValue(pm.getLeadOrgId());dataRow.createCell(4).setCellValue(pm.getPrjName());dataRow.createCell(5).setCellValue(pm.getDevOrgId());dataRow.createCell(6).setCellValue(pm.getDetailAddr());dataRow.createCell(7).setCellValue(pm.getPrjIntro());dataRow.createCell(8).setCellValue(pm.getPlanTotalInvest() + "");dataRow.createCell(9).setCellValue("XXXXX");dataRow.createCell(10).setCellValue(yihui);dataRow.createCell(11).setCellValue(pm.getRealStartDate());dataRow.createCell(12).setCellValue(pm.getRealEndDate());}// 下载导出String filename = "XXXXXXX平台工程信息表";// 设置头信息response.setCharacterEncoding("UTF-8");response.setContentType("application/vnd.ms-excel");//一定要设置成xlsx格式response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename + ".xlsx", "UTF-8"));//创建一个输出流ServletOutputStream outputStream = response.getOutputStream();//写入数据sxssfWorkbook.write(outputStream);// 关闭outputStream.close();sxssfWorkbook.close();}

前台请求接口方法:

function bbdc() {window.location.href= 'xxxxxxxx/front/exportExcel';
}

合并Excel单元格

方法:

CellRangeAddress region1 = new CellRangeAddress(rowNumber, rowNumber, (short) 0, (short) 11);
//参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
sheet.addMergedRegion(region1);

设置样式

演示文字居中方法

//合并的单元格样式
HSSFCellStyle boderStyle = wb.createCellStyle();
//垂直居中
boderStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
boderStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
//设置一个边框
boderStyle.setBorderTop(HSSFBorderFormatting.BORDER_THICK);

更具体、更详细的操作,当然是官方文档啦:http://poi.apache.org/apidocs/dev/org/apache/poi

Springboot导出excel,合并单元格示例相关推荐

  1. springboot项目导出excel 合并单元格表格

    springboot项目导出excel 合并单元格表格 导出效果 业务controller 业务数据 业务实体类 注解MyExcel.java 注解 MyExcels 导出工具类MyExcelUtil ...

  2. poi导出Excel合并单元格、设置打印参数页眉页脚等

    由于生成文件不能落地,使用SXSSFWorkBook来对excel的导出工作 生成excel步骤: 1.创建workbook SXSSFWorkbook workbook=new SXSSFWorkb ...

  3. java导出excel 边框不全_POI 导出Excel合并单元格后部分边框不显示

    用户需要导出自定义表格,其中合并单元格样式遇到的问题,合并后只显示第一行第一列的边框,其他边框不显示,于是遍查百度,寻到一点思路 ①了解Excel绘制原理 ②了解绘制Excel顺序 ③绘制Excel单 ...

  4. java导出excel合并单元格

    今天是2018最后一天了,废话就不多说了直接上干货吧! 1.java导出excel用到POI所有jar包 ,大家可以直接到下面地址下载点击打开链接 2.导出excel的方法 package org; ...

  5. POI导出EXCEL合并单元格对象嵌套List数据

    导出EXCEL 在实际的开发过程当中,我们会遇到一些比较复杂的导出需求,例如需要导出的实体类中需要嵌套集合对象等,正好最近碰到了所以分享出来,希望对大家有帮助 一.POI是什么 简单的说就是Apach ...

  6. java SXSSF 导出excel 合并单元格,设置打印分页

    官方poi地址: Busy Developers' Guide to HSSF and XSSF Features HSSFWorkbook.XSSFWorkbook.SXSSFWorkbook的区别 ...

  7. java POI导出excel,合并单元格边框消失

    业务是导出一个报表,要求有一个跨多列的表头,肯定要用到合并单元格,但合并后边框消失.网上的一些解决办法是重写合并单元格方法,但弄清楚原因后,其实没必要. 原来是这样的: 合并后就第一个有边框,其余全成 ...

  8. JXL导出EXCEL合并单元格、文字对齐方式 .

    public void createNoLotteryAlarmExcel(String filePath,String fileName,List<NoLotteryAlarm> ala ...

  9. JXL导出EXCEL合并单元格、文字对齐方式

    这次能做出来,主要是感谢各位在网上提供的资料,在此记录 导出的结果是,大家看哈,若有可取之处可继续 代码比较多,大家主要看哈我用红色标注部分即可 --------------------------- ...

  10. html导出excel合并单元格,JS导出EXCEL,动态设置单元格格式,合并单元格(横向或纵向)等操作...

    参考链接: https://blog.csdn.net/weixin_33724046/article/details/89611397 https://www.cnblogs.com/lvsk/p/ ...

最新文章

  1. MspEmu W.I.P
  2. 二十一、String、StringBuffer和StringBuilder的区别是什么?
  3. wxWidgets:wxCalendarCtrl类用法
  4. Apache Ranger源码编译及使用
  5. Spring5 版本新特性简述
  6. 安装完mysql后sqlserver_您还在用下一步下一步的方式安装SQLSERVER和SQLSERVER补丁吗?...
  7. php监听mq消息,客户端监听服务端获取rabbitmq消息队列,rabbitmq有消息的时候客户端刷新页面才能获取到消息,监听没起到作用,请求各位大神指点迷津...
  8. linux 修改ldap密码,Linux-ldap密码修改程序,如何加密ssha
  9. iOS开发UI篇—Quartz2D简单使用(二)
  10. Hadoop,MapReduce
  11. [经典面试题][百度]数轴上从左到右有n各点a[0], a[1], ……,a[n -1],给定一根长度为L的绳子,求绳子最多能覆盖其中的几个点。...
  12. Access denied for user 'root'@'localhost' Could not obtain connection
  13. opencv-python 4.2 函数手册
  14. 分享几个纯净版Windows系统下载网站
  15. [Unity]腾讯SDK踩坑之路(3)--米大师坑 + MSDK坑 (2)
  16. Android系统启动流程分析
  17. 2019京东全球科技探索者大会议程抢先曝光!
  18. 这几款高格调的app,让你的人生妖艳起来!
  19. xp系统 服务器,xp系统当服务器
  20. uni-app 图片上传插件使用说明

热门文章

  1. mysql c盘满了 怎么办_C盘满了如何清理
  2. 全球及中国远程浏览器隔离解决方案行业投资分析与前景战略建议报告2022版
  3. 电商运营如何打造爆品?
  4. 用python动态时钟代码_python实现简易动态时钟
  5. APP开发要么快要么死!
  6. C#绘制九宫格形式的图片
  7. 利用策略路由traffic-policy 实现路由的控制
  8. micropython STM32移植笔记(一)
  9. The Picture of Dorian Gray——17
  10. Centos7 Apache结合tomcat实现动静分离