最近项目需要导出Excel 文件,想到到了 JXLS 工具,首先网上百度了下,看了下资料,好像挺简单的就开始操作了,发现测试的时候各种问题:
1.网上一堆的教程都是 jxls 1.0 左右的版本,导入网上的测试程序缺了一堆类 比如transformXLS 问题
2.百度 jxls 2.3.0,几乎千篇一律,都是复制黏贴,想查看下如何操作多sheet,几乎都没有提到,到时看到了如何写自定义的方法,觉的还是有收获的。无奈,只能去官网下载 源码例子 运行。运行 demo 后发现,那些 自定义函数的操作原理 官网例子里就有,多Sheet 操作也十分简单,直接在多sheet模板上建立好相应的对象引用模板,代码添加绑定 Context 即可。运行,OK 一切正常,官网的例子 是采用 maven ,在 jar包拷贝上会有些问题,后面会说明如何导出jar(针对初学者,高手略过)
一、导出到默认目录 targed/dependency
从Maven项目中导出项目依赖的jar包:进入工程pom.xml 所在的目录下,执行如下命令:
1
|
mvn dependency:copy-dependencies
|
或在eclipse中,选择项目的pom.xml文件,点击右键菜单中的Run As,见下图红框中,在弹出的Configuration窗口中,输入 dependency:copy-dependencies后,点击运行
maven项目所依赖的jar包会导出到targed/dependency目录中。
二、导出到自定义目录中
在maven项目下创建lib文件夹,输入以下命令:
1
|
mvn dependency:copy-dependencies -DoutputDirectory=lib
|
maven项目所依赖的jar包都会复制到项目目录下的lib目录下
三、设置依赖级别
同时可以设置依赖级别,通常使用compile级别
1
|
mvn dependency:copy-dependencies -DoutputDirectory=lib -DincludeScope=compile
|
3.官网程序运行正常了,新建个工程,导入自己的jar包测试,公司的平台比较老,基于 jdk 1.6 的,一切准备就绪,OK 运行下看看,。。。。出错了,提示程序编译版本与 jdk 不配,what ??? 难道白搞了,查询下jar包的编译版本,我的天,JDK 1.8的。。。。之前的工作白弄了?百度看看如何 让 jxls 2.4.0 运行在 JDK 1.6 的环境里。这度娘也太不给力了,查了半天没看到相关的解决办法。突然想起下载的官网版 包里正好有源码,想到说不定可以编译源码来解决,OK,导入 源码,差 在 JDK 1.6 下报错了,红闪闪的错误,也他妈的太刺眼了。打开错误分析下,都是简单语法兼容问题,处理下,重新编译打包,OK了。实现了 JXLS 2.4.0 运行在JDK 1.6 的环境里了。运行demo ,也OK了
4.Excel 2003/2007 文件读取问题,看了一堆jxls 1.0 读取 两种版本的方法 都会通过特定的类来读取,想着 这2.40 应该也要吧,重新报错excel 格式,创建模板,运行 居然没错,看来 程序智能了,2.0 版本做了智能判断处理,这倒省事了
5.拷入相应jar 包到平台下,运行demo还是兼容问题 报了一堆错误,程序类无法创建,在反射创建方法的时候失败了,无奈只能比较最少依赖包,发现 xmlbeans-2.6.0.jar 与 xmlbeans-2.3.0.jar 同时存在,会导致该问题,去除 xmlbeans-2.3.0.jar ,OK, demo 在老平台上运行了。总算可以了
最后奉献上代码了: 点击下载
JexcelTemple.zip