JAVA 使用POI导出数据格式为Execl
需要下载一个poi的jar包。
控制器
@Override
public void getContractListExecl(Contract contract, BindingResult result, HttpServletRequest req,
HttpServletResponse response) throws IOException { List<Map<String, Object>> sttList = contractService.getContracts(contract);// 得到需要导出的数据
int i = 0;
// 第一步,创建一个webbook,对应一个Excel文件
@SuppressWarnings("resource")
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet("title");
// 设置表格默认列宽度为15个字节
sheet.setDefaultColumnWidth((short) 20);
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = sheet.createRow(i);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_LEFT); // 创建一个居中格式 HSSFCell cell = row.createCell(0);
cell.setCellValue("用户姓名");
cell.setCellStyle(style);
cell = row.createCell(1); cell.setCellValue("电话");
cell.setCellStyle(style);
cell = row.createCell(2); cell.setCellValue("家庭医生团队名称");
cell.setCellStyle(style);
cell = row.createCell(3); cell.setCellValue("服务办理人姓名");
cell.setCellStyle(style);
cell = row.createCell(4); cell.setCellValue("服务办理人电话");
cell.setCellStyle(style);
cell = row.createCell(5); cell.setCellValue("服务办理人代码");
cell.setCellStyle(style);
cell = row.createCell(6); cell.setCellValue("完成签约时间");
cell.setCellStyle(style);
cell = row.createCell(7); cell.setCellValue("服务完成ITV编码");
cell.setCellStyle(style);
cell = row.createCell(8); cell.setCellValue("服务完成时间");
cell.setCellStyle(style);
cell = row.createCell(9); for (Map<String, Object> row_ : sttList) {
row = sheet.createRow(++i);
// 第四步,创建单元格,并设置值
row.createCell(0)
.setCellValue(row_.get("userName") == null ? "###" : row_.get("userName").toString());
row.createCell(1)
.setCellValue(row_.get("userPhone") == null ? "###" : row_.get("userPhone").toString());
row.createCell(2).setCellValue(row_.get("dgName") == null ? "###" : row_.get("dgName").toString());
row.createCell(3)
.setCellValue(row_.get("proxyName") == null ? "###" : row_.get("proxyName").toString());
row.createCell(4).setCellValue(row_.get("proxyPhone") == null ? "###" : row_.get("proxyPhone").toString());
row.createCell(5).setCellValue(row_.get("proxyCode") == null ? "###" : row_.get("proxyCode").toString());
row.createCell(6).setCellValue(row_.get("updateTime") == null ? "###" : row_.get("updateTime").toString());
row.createCell(7).setCellValue(row_.get("itvToken") == null ? "###" : row_.get("itvToken").toString());
row.createCell(8).setCellValue(row_.get("itvUpdateTime") == null ? "###" : row_.get("itvUpdateTime").toString()); }
String fileName = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
response.setHeader("content-disposition",
"attachment;filename=" + new String(fileName.getBytes("UTF-8"), "ISO8859-1") + ".xls");
OutputStream fout = response.getOutputStream();
wb.write(fout);
fout.close();
} }
前端调用该接口就可以了!
效果图:


JAVA 使用POI导出数据格式为Execl的更多相关文章
- Java之POI导出Excel(一):单sheet
相信在大部分的web项目中都会有导出导入Excel的需求,今天我们就来看看如何用Java代码去实现 用POI导出Excel表格. 一.pom引用 pom文件中,添加以下依赖 查看代码 <!-- ...
- java 使用POI导出百万级数据
先看结果吧,这只是测试其中有很多因数影响了性能. 表总数为:7千多万,测试导出100万 表字段有17个字段 最终excel大小有60多兆 总耗时:126165毫秒 差不多2分多钟 其核心简单来说就是分 ...
- java解决poi导出excel文字水印,导出excel不可操作问题
首先需求是用户提出导出excel数据需使用水印备注其用途: 其实就是在导出excel的同时带有自定义文字水印的导出. 那么我们首先想到的肯定是以一个什么样的思路去解决该问题,首先查找poi导出exce ...
- java使用poi导出excel
继上一篇导出pdf,这篇导出excel. 1.导入依赖 <dependency> <groupId>org.apache.poi</groupId> <art ...
- Java使用POI导出excel(下)——实例与小技巧
[更新]:thinkgem的导出工具类: /** * Copyright © 2012-2016 <a href="https://github.com/thinkgem/jeesit ...
- Java使用POI导出excel(上)——基本操作
相关的介绍参考自:http://zc985552943.iteye.com/blog/1491546 一.概述 1.概念 受上文博文博主的启发,有必要先对excel的各个概念先做了解! //上述基本都 ...
- java springmvc poi 导出Excel,先简单记录,后期会详细描写
POI jar包下载 : http://poi.apache.org/download.html jsp代码 <%@ page language="java" content ...
- Java之POI导出Excel(二):多个sheet
相信在大部分的web项目中都会有导出导入Excel的需求,之前我也写过一篇导出单个sheet工作表的文章,没看过的小伙伴可以去看哈,链接也给大家放出来了:导出单个sheet 但是在我们日常的工作中,需 ...
- java利用poi导出数据到excel
背景: 上一篇写到利用jtds连接数据库获取对应的数据,本篇写怎样用poi将数据到处到excel中,此程序为Application 正文: 第三方poi jar包:poi驱动包下载 代码片段: /** ...
随机推荐
- 相识从C语言开始
大家好,我是你们这学期C语言的助教吴科桥(女O(∩_∩)O),非常开心能在你们美好的大学这站与你们相遇,希望可以为你们学习C语言略尽绵薄之力. 开学第一周: 1. 希望每个同学都可以有自己的博客,我会 ...
- win7 iis7 发布asp.net mvc4.0+EF6.0站点记录
1.处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelineHandler” 解决方法: 原因: 1.iis ...
- windows在cmd执行svn 命令
1. 使用svn 命令行工具. 找到http://www.visualsvn.com/downloads/ 下载Apache Subversion command line tools,这是一个可以在 ...
- erlang rabbitmq-server安装
erlang rabbitmq-server安装 yum -y install xsltproc fop tk unixODBC unixODBC-devel make gcc gcc-c++ k ...
- jq html 页面点击图片直接上传
<form id="ff" method="post" enctype="multipart/form-data" style=&qu ...
- PHP读取XML文件数据
XML文件 <?xml version="1.0" encoding="UTF-8"?> <node> <student> ...
- JSON.parse()和JSON.stringify()使用介绍
parse用于从一个字符串中解析出json对象,如 ? 1 var str = '{"name":"huangxiaojian","age" ...
- VS 解决方案管理器和 编辑窗口同步 联动
对于题目的解释就是 当我点击一下解决方案管理器中的 某一个文档时, 编辑窗口会联动的 同步到对应的窗口。之前好像被我无意中关掉了,今天重新建立一个项目无意中发现怎么设置了 如果想点击右边的文档 ...
- Qt之键盘讲解
QWSInputMethod详解 注意:这个类不仅仅在嵌入式环境下有效 一个输入法包括了过滤器和可选的图形界面,用来过滤服务器和客户端应用程序之间 的输入事件. 创建自定义的输入法,需要得自QWSIn ...
- Couchbase学习记录
Couchbase是membase的升级版,membase与memcache是同一家公司出的,Couchbase包含了memcache的功能. 从其官网上下载最新的版本安装即可.安装成功后会弹出设置页 ...