首页 > 编程 > Java > 正文

Java poi导出Excel下载到客户端

2019-11-26 10:20:07
字体:
来源:转载
供稿:网友

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();    }  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表