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的各个概念先做了解! //上述基本都 ...
随机推荐
- 1874 football game(三分法and method to compute the area of trianngle)
FInd the max area. 1. 三分法 2. NAN (not comparable with number) http://acm.timus.ru/problem.aspx?space ...
- 如何删除Word 2010中的“向下箭头”
原文:https://jingyan.baidu.com/article/e75aca85552916142edac614.html 在日常办公中,如果从网站复制了一段文字,直接粘贴到Word中时,常 ...
- 对于view的深入理解,续篇(一)重写ViewGroup的onDraw
在上一篇文章中,不仅熟悉了动态设定布局的方法,而且也对view的绘制流程有所了解.于是我继续做了下面几个实验,发现了一个问题.如果对view的绘制流程不是很明白,可以看看我的上一篇文章的介绍,点击下面 ...
- Yii 集成 PHPExcel读取Excel文件
PHPexcel官方下载以后,放入Yii的protected\extensions\phpexcel下面 try { spl_autoload_unregister(array('YiiBase', ...
- dropout总结
1.伯努利分布:伯努利分布亦称“零一分布”.“两点分布”.称随机变量X有伯努利分布, 参数为p(0<p<1),如果它分别以概率p和1-p取1和0为值.EX= p,DX=p(1-p). 2. ...
- tensorflow的一些函数
1.tf.constant(value,dtype=None,shape=None,name='Const') 注意这个函数创造的是一个常数tensor,而不是一个具体的常数 value:即可以是li ...
- 最长公共子序列问题LCS
最长公共子序列问题 在这里介绍一种在动态规划中类似于板子题的类型 : 最长公共子序列问题.(Link) 首先来看题面:给出1-n的两个排列P1和P2,求它们的最长公共子序列. 我们看到题之后的第一个想 ...
- 如果js设置移动端有两种方式 大家可以参考
//使用em单位 var scaleObj = { documentEle : document.documentElement, deviceWidth : document.documentEle ...
- webservice 从客户端中检测到有潜在危险的 Request.Form 值
webservice中传递xml格式的参数时报错 webservice 从客户端中检测到有潜在危险的 Request.Form 值解决方案: 1.在web.config的system.web节点中添加 ...
- Mongoose 对象的特殊性
一.偶遇难题 在最近使用Mongoose的时候,遇到这样一个问题: 我从DB中查询出来一个对象,比如是Book,这个对象我想在返回时,给他附加一个字段,比如是字段A,正常来说,JS你只需要Book.A ...