23.POI导出
POI导出
XSSFWorkbook 对应Excel2007版本及以上
HSSFWorkbook 对应Excel2003版本
还要注意一点,不要用Swagger-ui测试导出的表格,这样的表格文件都是损坏的。
1.导入依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.16</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.16</version>
</dependency>
2.建表
在这里我有个习惯,就是喜欢把自己做好表头的Excel文件读取到程序中,然后再装填数据。
所以,我很少写更改表格样式的代码。
@Override
public XSSFWorkbook createMemberExcel(List idList, XSSFWorkbook excel) {
List<Member> memberList= (List<Member>) this.listByIds(idList);
int sheetNum = 0;
XSSFSheet sheet = excel.getSheetAt(sheetNum);
int rowNum = 1;
for(Member member:memberList) {
XSSFRow row = sheet.createRow(rowNum++);
int cellNum = 0;
XSSFCell cell = row.createCell(cellNum++);
cell.setCellValue(member.getNum());
cell = row.createCell(cellNum++);
cell.setCellValue(member.getName());
cell = row.createCell(cellNum++);
String sex = member.getSex()== true ? "女" : "男";
cell.setCellValue(sex);
cell = row.createCell(cellNum++);
if(null != member.getBirth()) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
cell.setCellValue(member.getBirth().format(formatter));
}
cell = row.createCell(cellNum++);
String type = member.getType()==true ? "教职工" : "学生";
cell.setCellValue(type);
cell = row.createCell(cellNum++);
cell.setCellValue(member.getDep());
cell = row.createCell(cellNum++);
cell.setCellValue(member.getPro());
cell = row.createCell(cellNum++);
cell.setCellValue(member.getTeam());
cell = row.createCell(cellNum++);
cell.setCellValue(member.getNational());
cell = row.createCell(cellNum++);
cell.setCellValue(member.getOrigin());
cell = row.createCell(cellNum++);
cell.setCellValue(member.getIdCard());
cell = row.createCell(cellNum++);
cell.setCellValue(member.getJoinOrganization());
cell = row.createCell(cellNum++);
if(null != member.getJoinDate()) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
cell.setCellValue(member.getJoinDate().format(formatter));
}
}
return excel;
}
3.文件流导出
private void download(String filename, XSSFWorkbook excel,HttpServletResponse response) throws IOException {
response.setHeader("Access-Control-Expose-Headers","Content-Disposition");
response.setHeader("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml");
response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(filename, "utf-8"));
OutputStream outputStream = response.getOutputStream();
excel.write(outputStream);
outputStream.flush();
outputStream.close();
/*FileOutputStream fos = new FileOutputStream("1.xlxs");
excel.write(fos);
fos.flush();
fos.close();*/
}
23.POI导出的更多相关文章
- 使用POI导出Word(含表格)的实现方式及操作Word的工具类
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- poi导出excel
Java使用poi组件导出excel报表,能导出excel报表的还可以使用jxl组件,但jxl想对于poi功能有限,jxl应该不能载excel插入浮动层图片,poi能很好的实现输出excel各种功能, ...
- POI导出excel的简单demo
目前使用过两种导出excel的方式,一种是如题所示的使用POI的方式进行数据的导出,这种方式一般只有在处理比较多的数据或者说需要导出的excel表格中有图片之类的需要特殊处理的文件的时候使用:还有一种 ...
- [转载]poi导出excel,可以自定义保存路径
poi导出excel比js导出excel安全性更好,在使用poi导出excel时,先要导入poi-3.5-FINAL-20090928.jar包到你项目的lib目录下,我这里选择是3.5版的 1.ac ...
- POI导出EXCEL经典实现
1.Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能. .NET的开发人员则 ...
- Java POI 导出EXCEL经典实现 Java导出Excel
转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者 ...
- poi导出word
最近做了个poi导出word的功能 下面是代码: 一个可以参考的例子: package com.lzb.crm.web; import java.io.FileOutputStream; import ...
- POI导出大量数据的简单解决方案(附源码)-Java-POI导出大量数据,导出Excel文件,压缩ZIP(转载自iteye.com)
说明:我的电脑 2.0CPU 2G内存 能够十秒钟导出 20W 条数据 ,12.8M的excel内容压缩后2.68M 我们知道在POI导出Excel时,数据量大了,很容易导致内存溢出.由于Excel ...
- java中使用poi导出excel表格数据并且可以手动修改导出路径
在我们开发项目中,很多时候会提出这样的需求:将前端的某某数据以excel表格导出,今天就给大家写一个简单的模板. 这里我们选择使用poi导出excel: 第一步:导入需要的jar包到 lib 文件夹下
随机推荐
- js 中移动元素的方法
2017-12-13 19:59:24 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- 深入理解JavaScript系列(2):揭秘命名函数表达式
前言 网上还没用发现有人对命名函数表达式进去重复深入的讨论,正因为如此,网上出现了各种各样的误解,本文将从原理和实践两个方面来探讨JavaScript关于命名函数表达式的优缺点. 简单的说,命名函数表 ...
- js根据子目录数目显示父级目录
需求:<ul>中<li>数量为0,则不显示<ul>以及<b>:<div>中<ul>数量为0,则不显示<div> 1. ...
- 解决The current branch is not configured for pull No value for key branch.master.merge found in config
使用Git Pull项目的时候出现这个问题: The current branch is not configured for pull No value for key branch.master. ...
- 【代码笔记】Java学习一阶段总结
写笔记需要打开eclipse写 哈哈哈哈,不然写什么都屡不清了 ……还需要打开API说明文档. JFrame 窗体组件. JFrame里面常用的函数: setSize 设置窗体大小 setDefaul ...
- mongodb 32为安装
启动命令:mongod --dbpath D:\MongoDB\data --logpath c:\MongoDB\log\mongod.log --journal 安装引擎: mongod --db ...
- css3 border-image及连续的图像边框
border-image 它是下面几个值的简写: border-image-source // 使用绝对或相对地址url,引入图片 border-image-slice //切割图片,取值支持:& ...
- 获取css样式,style、getComputedStyle及currentStyle的区别
样式表有三种: 内嵌样式:<div id="box" style="color:red">box</div>,style写在html中的 ...
- SharePoint 2013 - Bootstrap
1. 在SharePoint 2013中应用Bootstrap时,需要添加以下css: <style> .container{ margin-left:0px; //为了使containe ...
- ArcGIS Engine从服务器(ArcSDE geodatabases)读取数据
从远程服务器读取数据进行处理,直接贴代码: public class ConnectDB { private static String SERVER = "xxx.xxx.xxx.xxx& ...