温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java中poi如何导出Excel下载到客户端

发布时间:2021-08-20 10:19:04 来源:亿速云 阅读:230 作者:小新 栏目:编程语言

这篇文章将为大家详细讲解有关Java中poi如何导出Excel下载到客户端,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

具体内容如下

Maven配置,包含了其他文件格式的依赖,就全贴出来了

<dependency>       <groupId>org.apache.poi</groupId>       <artifactId>poi-excelant</artifactId>       <version>3.12</version>     </dependency>     <dependency>       <groupId>org.apache.poi</groupId>       <artifactId>poi-scratchpad</artifactId>       <version>3.12</version>     </dependency>     <dependency>       <groupId>org.apache.poi</groupId>       <artifactId>poi-ooxml</artifactId>       <version>3.8</version>     </dependency>     <dependency>       <groupId>org.apache.poi</groupId>       <artifactId>poi-ooxml-schemas</artifactId>       <version>3.8</version>     </dependency>

Service层

@Override   public void export(Long sblsh, String excelName, OutputStream out) {     try {       // 第一步,创建一个webbook,对应一个Excel文件        HSSFWorkbook wb = new HSSFWorkbook();       //生成一个表格        HSSFSheet sheet = wb.createSheet(excelName);        // 第三步,在sheet中添加表头第0行       HSSFRow row = sheet.createRow(0);              // 第四步,创建单元格,并设置值表头 设置表头居中        HSSFCellStyle style = wb.createCellStyle();        style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式       HSSFCell cell = row.createCell(0);       cell.setCellStyle(style);              Byte kjzz = qyjbxxMapper.getKjzz(sblsh);       List<A> record = this.selectBySblsh(sblsh);         this.insertData(wb, sheet, row, record, out);       }     } catch (Exception e) {       logger.info(e.getMessage());     }   }      /**    * 导入数据到表格中    * @param wb execl文件    * @param sheet 表格    * @param row 表格行    * @param record 要导出的数据    * @param out 输出流    */   private void insertData(HSSFWorkbook wb,HSSFSheet sheet,HSSFRow row,List<A> record,       OutputStream out){     try {       row = sheet.createRow(1);       for(int i=0;i<title.length;i++){         row.createCell(i).setCellValue(title[i]);       }       for(int i=0;i<record.size();i++){         row = sheet.createRow(i+2);         A data = record.get(i);         row.createCell(0).setCellValue(data.getHc());         row.createCell(1).setCellValue(data.getXm());         BigDecimal je = data.getJe();         if(je!=null){           row.createCell(2).setCellValue(je.doubleValue());         }       }       //合并单元格,前面2位代表开头结尾行,后面2位代表开头结尾列       CellRangeAddress region = new CellRangeAddress(0,0,0,title.length-1);       sheet.addMergedRegion(region);       wb.write(out);       out.flush();       out.close();       wb.close();     } catch (Exception e) {       logger.info(e.getMessage());     }   }

Controller

@RequestMapping("/export")   public void export(Long sblsh, HttpServletRequest request, HttpServletResponse response){     response.setContentType("octets/stream");     String excelName = "文件名";     try {       response.addHeader("Content-Disposition", "attachment;filename="+new String(excelName.getBytes("gb2312"), "ISO8859-1" )+".xls");       OutputStream out = response.getOutputStream();       aService.export(sblsh,excelName ,out);     } catch (Exception e) {       e.printStackTrace();     }   }

关于“Java中poi如何导出Excel下载到客户端”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI