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的各个概念先做了解! //上述基本都 ...
随机推荐
- eigenMatrix
#include <iostream> using namespace std; #include <ctime> // Eigen 部分 #include <Eigen ...
- gmock使用、原理及源码分析
1 初识gmock 1.1 什么是Mock 便捷的模拟对象的方法. 1.2 Google Mock概述 google mock是用来配合google test对C++项目 ...
- January 20 2017 Week 3 Friday
I am a slow walker, but I never walk backwards. 我走得很慢,但我从来不会后退. In the past years, I walked very slo ...
- SAP S/4HANA使用ABAP获得生产订单的状态
在S/4HANA里,我们如何根据一个销售订单的行项目,查看对应的生产订单状态? 双击行项目: 点击Schedule line: 这里就能看到生产订单的ID和状态了. 其中订单的状态存储在表vsaufk ...
- html5 css3新特性了解一下
html5: 用于绘画的 canvas 元素 以及SVG 用于媒介回放的 video 和 audio 元素 拖拽(Drag 和 drop) 地理定位(Geolocation) 对本地离线存储的更好的支 ...
- [零基础学pythyon]安装python编程环境
不论什么高级语言都是须要一个自己的编程环境的,这就好比写字一样,须要有纸和笔,在计算机上写东西.也须要有文字处理软件,比方各种名称的OFFICE.笔和纸以及office软件,就是写东西的硬件或软件.总 ...
- es6之proxy和reflect
一.proxy //Proxy和Reflect //供应商 let obj={ time:"2017-11-21", name:"net", _r:123 } ...
- POJ 1644 分苹果 (递归解法)
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 <= t < ...
- Visual Studio 中常用的快捷键
项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示 Solution Explorer(解决方案资源管理器) Shift + Alt+ C = 添 ...
- java模拟浏览器发送请求
package test; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOExcep ...