Jeesite(SpringBoot)采用poi实现从数据库提取数据导出为Excel,巨详细!!
2019-02-13 14:10
701 查看
-
技术说明:
主要是SpringBoot一套
思路:写个XML查询数据 查询到后通过get属性方法放到Excel里
-
Maven POM:
[code]<!--POI对office操作jar包--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.14</version> </dependency>
- 实体类和service+Dao就不贴了很简单 就是一个查询出你要的数据而已
Controller
[code]@RequestMapping(value = "export") public void ExportTemplents(HttpServletResponse response, UserInfo userInfo) throws IOException { //查询数据 List<UserInfo> userInfoList = userInfoService.QueryExpert(userInfo); HSSFWorkbook wb = new HSSFWorkbook();//创建工作簿 HSSFWorkbook:Excel的文档对象 HSSFFont font = wb.createFont();//设置字体大小 为什么要用wb.createFont呢 因为wb是主 font是包含这个里面的 HSSFCellStyle style = wb.createCellStyle(); //设置单元格格式 style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//居中对齐格式 font.setFontHeightInPoints((short) 28);//设置字体 HSSFSheet sheet = wb.createSheet("专家信息表");// HSSFRow row = null; //创建行 row = sheet.createRow(0);//创建第一行单元格.就像数组一样是0开头的 row.setHeight((short) (26.5 * 20));//设置行高 row.createCell(0).setCellValue("专家用户信息表"); //设置第一行单元格设置值 HSSFPatriarch patr = sheet.createDrawingPatriarch();//HSSFPatriarch poi的划线方法 HSSFComment comment = patr.createComment(new HSSFClientAnchor(0, 0, 0, 0, (short) 4, 2, (short) 6, 5)); // 设置注释内容 comment.setString(new HSSFRichTextString("专家状态 0:正常,1,冻结,2待审核,3审核通过,4审核未通过,5删除!")); //设置单元格合并 参数是:起始行号,终止行号, 起始列号,终止列号 CellRangeAddress rowRegion = new CellRangeAddress(0, 0, 0, 2); sheet.addMergedRegion(rowRegion); //sheet是页 这个的意思在文档Sheet的第一行 row = sheet.createRow(1); /* row.setHeight((short) (22.50 * 20));*/ //设置单元格格式 row.setHeight((short) (20.29 * 20)); //第一行标签 row.createCell(0).setCellValue("专家id"); row.createCell(1).setCellValue("专家姓名"); row.createCell(2).setCellValue("专家账号"); row.createCell(3).setCellValue("专家手机号"); row.createCell(4).setCellValue("专家所属公司"); row.createCell(5).setCellValue("专家状态"); row.createCell(6).setCellValue("专家创建时间"); row.createCell(7).setCellValue("性别"); //遍历集合数据,产生数据行 for (int i = 0; i < userInfoList.size(); i++) { row = sheet.createRow(i + 2); UserInfo userInfo1 = userInfoList.get(i); //往表格添加数据 row.createCell(0).setCellValue(userInfo1.getId()); row.createCell(1).setCellValue(userInfo1.getUserName()); row.createCell(2).setCellValue(userInfo1.getNickname()); row.createCell(3).setCellValue(userInfo1.getPhone()); row.createCell(4).setCellValue(userInfo1.getCompany()); //日期格式化 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = sdf.format(userInfo1.getCreateDate()); row.createCell(6).setCellValue(time); //性别处理 数据库存放的是1,2 我写的麻烦 你们自己处理吧 Integer sex = userInfo1.getSex(); String sex1 = null; if (sex == 1) { sex1 = "男"; row.createCell(7).setCellValue(sex1); } else { row.createCell(7).setCellValue("女"); } } sheet.setDefaultRowHeight((short) (20.29 * 20)); for (int i = 0; i <= 6; i++) { sheet.autoSizeColumn(i);//自动行高 } // response.setContentType 设置格式为UTF-8 不然可能会乱码 response.setContentType("application/vnd.ms-excel;charset=utf-8"); //output流得到流 OutputStream os = response.getOutputStream(); response.setHeader("Content-dEposition", "attachment;filename=专家信息.xls"); wb.write(os); os.flush();//刷新流 os.close();//关闭流 }
- 忘了发前端页面是咋样的。。。。补上
[code]<div style="margin-left: 10px"> <a href="${ctx}/yinyue/userInfo/export"><button type="button" class="btn btn-primary">导出</button></a> </div>
a href="${ctx}/yinyue/userInfo/export"这东西是你的请求地址,根据自己项目修改
另外有大神总结了poi的使用详解 我把地址贴这里 去看看就明白很多了
相关文章推荐
- SpringBoot中使用POI,快速实现Excel导入导出
- JAVA实现数据库数据导入/导出到Excel(POI)
- SpringBoot中使用POI,快速实现Excel导入导出
- [置顶] 【Excel_To_DB】SpringBoot+EasyPoi+Redis消息队列实现Excel批量异步导入数据库(三)
- Springboot+Poi实现Excel的导入导出
- Springboot/SpringMVC+POI 实现Excel导出功能(点击下载方式实现)
- [置顶] 【Excel_To_DB】SpringBoot+EasyPoi+Redis消息队列实现Excel批量异步导入数据库(一)
- SpringBoot中使用POI,快速实现Excel导入导出
- poi+jdbc实现从数据库中导出表的数据字典结构(单个sheet和多个sheet供你选择),并且生成excel文档,作者:vipyhd
- Java导出页面数据或数据库数据至Excel文件并下载,采用JXL技术,小demo(servlet实现)
- JAVA实现数据库数据导入/导出到Excel(POI技术)
- 依赖POI实现EXCEL导入数据并生成javaBean和EXCEL根据数据库表导出
- poi实现数据库数据导出到excel
- java poi实现数据库数据导出到excel
- SpringBoot+AngularJS导出数据库数据到excel
- Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表
- Java使用POI实现数据导出excel报表
- Spring Boot学习笔记----POI(Excel导入导出)
- Java程序员从笨鸟到菜鸟之(一百零五)java操作office和pdf文件(三)利用jxl实现数据导出excel报表以及与POI的区别
- 基于Spring3 MVC实现批量导出数据成Excel文件!