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并下载到客户端的更多相关文章

  1. 重构:以Java POI 导出EXCEL为例

    重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...

  2. Java POI 导出EXCEL经典实现 Java导出Excel

    转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者 ...

  3. 重构:以Java POI 导出EXCEL为例2

    前言 上一篇博文已经将一些对象抽象成成员变量以及将一些代码块提炼成函数.这一节将会继续重构原有的代码,将一些函数抽象成类,增加成员变量,将传入的参数合成类等等. 上一篇博文地址:http://www. ...

  4. POI导出excel并下载(以流的形式在客户端下载,不保存文件在服务器上)

    import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; i ...

  5. Java POI导出Excel不弹框选择下载路径(下载文件不选择下载路径,默认) Chrome

    在Chrome浏览器中,Java导出Excel文件时,浏览器弹出提示框,需要选择下载路径 在Chrome中的高级设置中,把“下载前询问每个文件的保存位置”去掉就解决了 DEEPLOVE(LC)

  6. java:POI导出excel

    POI是一个开源项目,专用于java平台上操作MS OFFICE,企业应用开发中可用它方便导出Excel. 下面是使用示例: 1.maven中先添加依赖项 <dependency> < ...

  7. Java POI 导出excel表

    1.首先下载poi-3.6-20091214.jar,下载地址如下: http://download.csdn.net/detail/evangel_z/3895051 2.Student.java ...

  8. java POI导出Excel文件数据库的数据

    在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.这里我简单实现导出Excel文件. POI jar ...

  9. POI导出Excel并下载

    首先在pom.xml添加jar包: <!-- 导出excel --> <dependency> <groupId>org.apache.poi</groupI ...

随机推荐

  1. RandomAccesssFileTest

    package com.yd.wmsc.util; import java.io.IOException; import java.io.RandomAccessFile; public class ...

  2. 11-----broder(边框)

    边框 border:边框的意思,描述盒子的边框 边框有三个要素: 粗细 线性样式 颜色 如果颜色不写,默认是黑色.如果粗细不写,不显示边框.如果只写线性样式,默认的有上下左右 3px的宽度,实体样式, ...

  3. JS——两个原生选择器

    1. document.querySlector() 2.document.querySlectorAll() <!DOCTYPE html> <html lang="en ...

  4. JAVA内存模型(Java Memory Model ,JMM)

    http://blog.csdn.net/hxpjava1/article/details/55189077 JVM有主内存(Main Memory)和工作内存(Working Memory),主内存 ...

  5. Sqoop Import HDFS

    Sqoop import应用场景——密码访问 注:测试用表为本地数据库中的表 1.明码访问 sqoop list-databases \ --connect jdbc:mysql://202.193. ...

  6. C# 读写XML文件的方法

    C# 读写XML文件的方法 一.写XML文件 XmlDocument xmlDocument = new XmlDocument();xmlDocument.AppendChild(xmlDocume ...

  7. ADO学习笔记之注入漏洞与参数化查询

    ADO学习笔记之注入漏洞与参数化查询 作为新手,在学习ADO程序时,使用 sql 语言查询数据时,很容易写类似如下代码: using (SqlConnection con = new SqlConne ...

  8. HhashMap HashTable ConcurrentHashMap

    hashMap hashTable concurrentHashMap hashMap的效率高于hashTable,hashMap是线程不安全的,并发时hashMap put方法容易引起死循环,导致c ...

  9. 从零开始的全栈工程师——html篇1.6

    浮动与伪类选择器 一.浮动(float) 1.标准文档流 标准文档流是一种默认的状态 浏览器的排版是根据元素的特征(块和行级) 从上往下 从左往右排版 这就是标准文档流 2.浮动(float)floa ...

  10. 工作中遇到的有关echarts地图和百度地图的问题

    工作中遇到的有关echarts地图和百度地图的问题 *** 前言:在做项目中需要制作一个场景是左边是柱状图,右边是地图,地图上悬浮一个按钮可以切换echarts地图和百度地图.*** 功能: 在点击左 ...