jxls-2.x导出excel入门——基本操作
之前随笔使用的是1.x的比较古老的版本了,已经不再维护,接下来使用较新的2.x的版本进行导出
之前一直按照其他的博客与官网的随笔进行导出,发现一直报错,后面更换了POI的版本为3.16(因为jxls也是使用的最新的版本),就解决了jar包的冲突问题
jar冲突参考的是:http://www.cnblogs.com/mvilplss/p/6101676.html
一、概述
2.x更新后,比较大的不同是模板,之前的模板是直接将标签写在模板中:

新版的模板使用的是批注(单元格右键——插入批注即可)的形式(开始不熟悉excel,还找了半天这是啥):

还有xml这种稍微不那么直观的形式待后续更新
更多的概述介绍可以参见官网:http://jxls.sourceforge.net/
入门程序参考:http://www.cnblogs.com/klguang/p/6425422.html
二、HelloWorld入门
依赖直接根据官网起步提示进行引入:
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls</artifactId>
<version>2.4.1</version>
</dependency>
//若实际maven项目中采用此依赖,请将版本分离为properties统一管理
当然,还要的依赖包括(NosuchMethod引起的异常请检查依赖的冲突,版本的问题)
依赖的介绍可以参见官网:
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-poi</artifactId>
<version>1.0.13</version>
</dependency>
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-jexcel</artifactId>
<version>1.0.6</version>
</dependency>
由于jxls使用的是最新的版本,这里建议POI也调成新的版本(经测试:2.4.1配3.16完美使用)
<poi.version>3.16</poi.version>
<!-- poi office -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${poi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>${poi.version}</version>
</dependency>
//jar有待测试具体应该引入哪些版本可以兼容,哪些jar是最小引入
项目结构如下:

//其中,测试类位于上,模板文件位于下(关于这里模板文件的读取,请参见:http://www.cnblogs.com/jiangbei/p/6744882.html)
这里存在一些命名与规范等问题,实际使用时请规范相关命名与文件位置
模板文件
先看模板文件(temp2.xlsx),随笔开头已经对比过新老模板的区别。这里必须指出:批出中的标签只能在一行,不能换行!

注意看有两处批注,其中第一处批注信息为: jx:area(lastCell = "E4")

第二处批注信息为: jx:each(items="reclist" var="receiver" lastCell="E4") —— 请勿将标签换行!

导出的后端代码:
@RequestMapping(value = "/export2")
public String testExport2() throws Exception{
List<receiver> reclist = reSe.findall();
System.out.println("导出前查询list:=====================");
System.out.println(reclist);
InputStream in = receiverController.class.getClassLoader().getResourceAsStream("temp2.xlsx");
OutputStream out = new FileOutputStream("F:/output.xlsx");
Context context = new Context();
context.putVar("reclist",reclist);
JxlsHelper.getInstance().processTemplate(in, out, context);
SysoUtils.print("导出完毕!");
return null;
}
导出内容如下:(实际操作时请规范使用)

//其中,时间格式可以修改模板处单元格格式,详见jxls1.x随笔
再修改为导出给浏览器下载:
@RequestMapping(value = "/export2")
public String testExport2(HttpServletResponse response) throws Exception{
List<receiver> reclist = reSe.findall();
System.out.println("导出前查询list:=====================");
System.out.println(reclist);
InputStream in = receiverController.class.getClassLoader().getResourceAsStream("temp2.xlsx");
OutputStream out = null;
response.setHeader("Content-Disposition", "attachment;filename=export.xlsx");
/*response.setContentType("application/ms-excel;charset=UTF-8");*/
response.setContentType("application/vnd..ms-excel;charset=UTF-8");
out = response.getOutputStream();
Context context = new Context();
context.putVar("reclist",reclist);
JxlsHelper.getInstance().processTemplate(in, out, context);
SysoUtils.print("导出完毕!");
return null;
}
jxls-2.x导出excel入门——基本操作的更多相关文章
- jxls-1.x导出excel入门——基本操作
请注意,一下内容均基于1.x版本,2.x版本将另开随笔记录 一.概述 JXLS是基于Jakarta POI API的Excel报表生成工具,可以生成精美的Excel格式报表.它采用标签的方式,类似J ...
- jxls使用模版导出Excel
/** * 使用模版导出Excel */ @SuppressWarnings({ "unchecked", "deprecation" } ...
- 导出excel——入门
简单介绍 Jxl使用总结 样例 java使用jxl操作Excel文件总结
- weblogic 12c下jxls导出excel报错Could not initialize class org.apache.poi.xssf.usermodel.XSSFVMLDrawing
周一,开发反馈weblogic 12c下jxls导出excel报错,公司环境和UAT环境均报错,看日志如下: 2016-06-08 09:16:55,825 ERROR org.jxls.util.T ...
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
C#中缓存的使用 缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可: <%@ Outp ...
- JXLS导出Excel(模板导出)
1.导包 在pom.xml中加入依赖如下: <dependency> <groupId>org.jxls</groupId> <artifactId>j ...
- java使用jxls导出Excel
jxls是基于POI的Excel模板导出导入框架.通过使用类似于jstl的标签,有效较少导出Excel的代码量. 1.pom <!-- https://mvnrepository.com/art ...
- SpringBoot入门教程(十四)导出Excel
用JavaPOI导出Excel时,我们会考虑到Excel版本及数据量的问题.针对不同的Excel版本,要采用不同的工具类.HSSFWorkbook:是操作Excel2003以前(包括2003)的版本, ...
- Java使用POI导出excel(上)——基本操作
相关的介绍参考自:http://zc985552943.iteye.com/blog/1491546 一.概述 1.概念 受上文博文博主的启发,有必要先对excel的各个概念先做了解! //上述基本都 ...
随机推荐
- OC基础数据类型-NSArray
1.数组的初始化 NSArray *array = [[NSArray alloc] initWithObjects:@"One", @"Two", @&quo ...
- Json.Net 中Linq to JSON的操作
Linq to JSON是用来操作JSON对象的.可以用于快速查询,修改和创建JSON对象.当JSON对象内容比较复杂,而我们仅仅需要其中的一小部分数据时,可以考虑使用Linq to JSON来读取和 ...
- 在windows平台上构建自己的PHP(php5.3+)
这是一篇翻译的文章,原文参见:https://wiki.php.net/internals/windows/stepbystepbuild 顺便提一句,wiki.php.net有很多精彩的内容,想深入 ...
- Codeforces 955C - Sad powers(数论 + 二分)
链接: http://codeforces.com/problemset/problem/955/C 题意: Q次询问(1≤Q≤1e5),每次询问给出两个整数L, R(1≤L≤R≤1e18),求所有符 ...
- 【HAOI2010】工厂选址题解
题目描述 某地区有m座煤矿,其中第i号矿每年产量为ai吨,现有火力发电厂一个,每年需用煤b吨,每年运行的固定费用(包括折旧费,不包括煤的运费)为h元,每吨原煤从第i号矿运到原有发电厂的运费为Ci0(i ...
- Libevent源码学习笔记一:event2/event.h
一.libevent标准使用方法: 每个程序使用Libevent必须include <event2/event.h> 头文件,并 传给 -levent 链接器.如果只是想使用主要的eve ...
- Centos7 yum安装mysql
参考此文档:http://www.jb51.net/article/116032.htm http://www.jb51.net/article/95399.htm 1.在官网下载mysql57-co ...
- Java 和 .NET SHA1算法记录
最近做了一个.NET访问Java接口的小Demo,其中用到了SHA1加密,大体思路就是.NET 传一些参数然后SHA1加密,Java端接收到之后在SHA1加密对比. Java代码: public fi ...
- MVC学习八:MVC View提交数据
学习编程最主要的就是数据交互,MVC中数据交互是怎么样的呢? 1.Controller向View传输数据在http://www.cnblogs.com/WarBlog/p/7127574.html中有 ...
- [转]java中文乱码的解决
在基于Java的编程中,经常会碰到汉字的处里及显示的问题,比如一大堆乱码或问号. 这是因为JAVA中默认的编码方式是UNICODE,而中国人通常使用的文件和DB都是基于GB2312或者BIG5等编码, ...