jxls对比_jxls-2.x导出excel入门——基本操作

之前随笔使用的是1.x的比较古老的版本了,已经不再维护,接下来使用较新的2.x的版本进行导出

之前一直按照其他的博客与官网的随笔进行导出,发现一直报错,后面更换了POI的版本为3.16(因为jxls也是使用的最新的版本),就解决了jar包的冲突问题

一、概述

2.x更新后,比较大的不同是模板,之前的模板是直接将标签写在模板中:

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

还有xml这种稍微不那么直观的形式待后续更新

二、HelloWorld入门

依赖直接根据官网起步提示进行引入:

org.jxls

jxls

2.4.1

//若实际maven项目中采用此依赖,请将版本分离为properties统一管理

当然,还要的依赖包括(NosuchMethod引起的异常请检查依赖的冲突,版本的问题)

依赖的介绍可以参见官网:

org.jxls

jxls-poi

1.0.13

org.jxls

jxls-jexcel

1.0.6

由于jxls使用的是最新的版本,这里建议POI也调成新的版本(经测试:2.4.1配3.16完美使用)

3.16

org.apache.poi

poi

${poi.version}

org.apache.poi

poi-ooxml

${poi.version}

org.apache.poi

poi-ooxml-schemas

${poi.version}

//jar有待测试具体应该引入哪些版本可以兼容,哪些jar是最小引入

项目结构如下:

这里存在一些命名与规范等问题,实际使用时请规范相关命名与文件位置

模板文件

先看模板文件(temp2.xlsx),随笔开头已经对比过新老模板的区别。这里必须指出:批出中的标签只能在一行,不能换行!

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

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

导出的后端代码:

@RequestMapping(value = "/export2")public String testExport2() throwsException{

List 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= newContext();

context.putVar("reclist",reclist);

JxlsHelper.getInstance().processTemplate(in, out, context);

SysoUtils.print("导出完毕!");return null;

}

导出内容如下:(实际操作时请规范使用)

//其中,时间格式可以修改模板处单元格格式,详见jxls1.x随笔

再修改为导出给浏览器下载:

@RequestMapping(value = "/export2")public String testExport2(HttpServletResponse response) throwsException{

List 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= newContext();

context.putVar("reclist",reclist);

JxlsHelper.getInstance().processTemplate(in, out, context);

SysoUtils.print("导出完毕!");return null;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值