欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java poi导出Excel下载到客户端

程序员文章站 2023-10-20 11:51:27
java poi 导出excel并下载到客户端,具体内容如下 maven配置,包含了其他文件格式的依赖,就全贴出来了

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

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