Java poi导出Excel下载到客户端

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读取ppt文件和poi读取excel、word示例
  • java使用poi读取excel内容方法实例
  • Java 使用poi把数据库中数据导入Excel的解决方法
  • JAVA使用POI获取Excel的列数与行数
  • java poi读取excel操作示例(2个代码)
  • Java利用POI实现导入导出Excel表格示例代码
  • java的poi技术读取和导入Excel实例
  • Java使用poi操作excel实例解析
  • 在java poi导入Excel通用工具类示例详解
  • java后台利用Apache poi 生成excel文档提供前台下载示例
(0)

相关推荐

  • java使用poi读取ppt文件和poi读取excel、word示例

    Apache的POI项目可以用来处理MS Office文档,codeplex上还有一个它的.net版本.POI项目可创建和维护操作各种基于OOXML和OLE2文件格式的Java API.大多数MS Office都是OLE2格式的.POI通HSMF子项目来支持Outlook,通过HDGF子项目来支持Visio,通过HPBF子项目来支持Publisher. 使用POI抽取Word简单示例: 要引入poi-3.7.jat和poi-scratchpad-3.7.ajr这两个包. 复制代码 代码如下: p

  • JAVA使用POI获取Excel的列数与行数

    前言 报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用性,不方便用户进行个性化编辑.Java程序由于其跨平台特性,不能直接操纵Excel.因此,本文探讨一下POI视线Java程序进行Excel中列数和行数的读取. 方法如下 //获取指定行,索引从0开始 hssfRow=hssfSheet.getRow(1); //获取指定列,索引从0开始 hssfCell=hssfRow.getCell((short)6); //获取总行数 //int rowNum=hssfSheet.ge

  • Java使用poi操作excel实例解析

    本文实例为大家分享了Java使用poi操作excel的具体代码,供大家参考,具体内容如下 依赖poi的jar包,pom.xml配置如下: <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0h

  • java poi读取excel操作示例(2个代码)

    项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 复制代码 代码如下: /* * 使用POI读取EXCEL文件 */import java.io.File;import java.io.FileInputStream;import java.util.ArrayList; import org.apache.poi.hssf.usermodel.HSSFCell;impor

  • Java利用POI实现导入导出Excel表格示例代码

    介绍 Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组件组成,其中有用于操作Excel格式文件的HSSF和用于操作Word的HWPF,在各种组件中目前只有用于操作Excel的HSSF相对成熟.官方主页http://poi.apache.org/index.html,API文档http://poi.apache.org/apidocs/index.html 实现 已经在代码中加入了完整的注释. import java.io.FileInputSt

  • java使用poi读取excel内容方法实例

    复制代码 代码如下: import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.nio.channels.FileChannel;import java.text.DecimalFormat;import java.text.SimpleDat

  • Java 使用poi把数据库中数据导入Excel的解决方法

    Java 利用poi把数据库中数据导入Excel 效果: 使用时先把poi包导入工程的path,注意只需要导入poi包即可,下载后有三个jar包 核心代码: 连接数据库:DBConnection.java 复制代码 代码如下: package org.xg.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;i

  • java的poi技术读取和导入Excel实例

    报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用性,不方便用户进行个性化编辑.Java程序由于其跨平台特性,不能直接操纵Excel.因此,本文探讨一下POI视线Java程序进行Excel的读取和导入. 项目结构: java_poi_excel 用到的Excel文件: xls XlsMain .java 类 //该类有main方法,主要负责运行程序,同时该类中也包含了用poi读取Excel(2003版) import java.io.FileInputStream; impor

  • java后台利用Apache poi 生成excel文档提供前台下载示例

    之前在项目中会用到在Java在后台把数据填入Word文档的模板来提供前台下载,为了自己能随时查看当时的实现方案及方便他人学习我写了这篇博客,访问量已经是我写的博客里第一了.于是乎我在学会用Java在后台利用Apache poi 生成excel文档提供前台下载之后就想着来写一篇姊妹篇啦. 在生成Excel文档的时候我采用了和生成Word时的不同方法,Apache poi.它是用Java编写的免费开源的跨平台的 Java API,提供API给Java程式对Microsoft Office格式档案读和

  • 在java poi导入Excel通用工具类示例详解

    前言 本文主要给大家介绍了关于java poi导入Excel通用工具类的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 问题引入和分析 提示:如果不想看罗嗦的文章,可以直接到最后点击源码下载运行即可 最近在做一个导入Excel的功能,在做之前在百度上面查找"java通用导入Excel工具类",没有查到,大多数都是java通用导出Excel.后来仔细想想,导出可以利用java的反射,做成通用的,放进相应的实体成员变量中,导入为什么不可以呢?也是可以的,不过在做

随机推荐