之前随笔使用的是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入门——基本操作的更多相关文章

  1. jxls-1.x导出excel入门——基本操作

    请注意,一下内容均基于1.x版本,2.x版本将另开随笔记录 一.概述  JXLS是基于Jakarta POI API的Excel报表生成工具,可以生成精美的Excel格式报表.它采用标签的方式,类似J ...

  2. jxls使用模版导出Excel

    /**     * 使用模版导出Excel     */    @SuppressWarnings({ "unchecked", "deprecation" } ...

  3. 导出excel——入门

    简单介绍 Jxl使用总结 样例 java使用jxl操作Excel文件总结

  4. 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 ...

  5. 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 ...

  6. JXLS导出Excel(模板导出)

    1.导包 在pom.xml中加入依赖如下: <dependency> <groupId>org.jxls</groupId> <artifactId>j ...

  7. java使用jxls导出Excel

    jxls是基于POI的Excel模板导出导入框架.通过使用类似于jstl的标签,有效较少导出Excel的代码量. 1.pom <!-- https://mvnrepository.com/art ...

  8. SpringBoot入门教程(十四)导出Excel

    用JavaPOI导出Excel时,我们会考虑到Excel版本及数据量的问题.针对不同的Excel版本,要采用不同的工具类.HSSFWorkbook:是操作Excel2003以前(包括2003)的版本, ...

  9. Java使用POI导出excel(上)——基本操作

    相关的介绍参考自:http://zc985552943.iteye.com/blog/1491546 一.概述 1.概念 受上文博文博主的启发,有必要先对excel的各个概念先做了解! //上述基本都 ...

随机推荐

  1. ubuntu 摄像头软件

    sudo apt-get install cheese

  2. SVD singular value decomposition

    SVD singular value decomposition https://en.wikipedia.org/wiki/Singular_value_decomposition 奇异值分解在统计 ...

  3. January 14 2017 Week 2nd Saturday

    Don't try so hard, the best things come when you least expect them to. 不要着急,最好的总会在最不经意时出现. The secon ...

  4. ZT 绿茶和枸杞绝不可以同饮

    绿茶和枸杞绝不可以同饮 正文 我来说两句(人参与) 速腾试驾招募 预约得iPad Air! 2012年06月28日10:38 来源:中国网 打印 字号 大|中|小 绿茶含有儿茶素与β-胡萝卜素.维生素 ...

  5. Sqlserver2008+搜索型注入技术

    简单的判断搜索型注入漏洞存在不存在的办法是先搜索',如果出错,说明90%存在这个漏洞.然后搜索%,如果正常返回,说明95%有洞了. 然后再搜索一个关键字,比如2006吧,正常返回所有2006相关的信息 ...

  6. Maven高级应用--编译全模块包-dist包

    1. 在需要生成dist包的模块级别,新建文件夹xxx-xxxx-dist 2. 进入目录,新建pom.xml,建议copy 3. dependencies节点,把要编译成全局包的应用引入进来 < ...

  7. 创建Spring工程的基本步骤

    第一步:加入jar包 第二步:创建配置文件 -申明javabean 配置 <?xml version="1.0" encoding="UTF-8"?> ...

  8. spring注入bean的三种方法

    在Spring的世界中, 我们通常会利用bean config file 或者 annotation注解方式来配置bean. 在第一种利用bean config file(spring xml)方式中 ...

  9. RESTful 开发风格介绍

    REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统.在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple ...

  10. DQL-子查询

    一:含义 嵌套在其他语句内部的select语句称之为子查询或内查询 外套的语句还可以是 insert,update,delete,一般用select比较多 外面如果是select语句,我们称之为外查询 ...