导出excel用的是net.sf.jxls.transformer.XLSTransformer的模板导出
1、tomcat运行项目时,excel模板放在web-inf下的,获取excel文件地址
String fileUrl = getRequest().getSession().getServletContext().getRealPath("/WEB-INF/template") + "/" + templateName;
2、项目打成jar运行时,web-inf下的文件并不会打进jar中,所以把excel模板转入到src/main/resources下面,获取excel文件地址
String fileUrl = getRequest().getSession().getServletContext().getRealPath("/WEB-INF/template") + "/" + templateName;
String fileUrl = this.getClass().getResource("/excel/"+templateName).getPath();
此时,会遇到一个问题,to
mcat运行项目,获取url是没得问题的,jar中获取路径就会有问题。例:
file:\E\Test.jar!
\a.txt
通过查找信息,获取url换成如下:
InputStream in = ClassLoaderUtil.getResourceAsStream("/excel/"+templateName, getClass());
// ClassLoaderUtil 仓库地址
<!-- jar获取资源 -->
<dependency>
<groupId>opensymphony</groupId>
<artifactId>oscore</artifactId>
<version>2.2.6</version>
</dependency>
3、此时紧接着会遇到问题,打jar包时,excel会被强制转码,我们用excel导出时,会出问题,解决方法如下:
pom.xml下在<build>下的plugins中加个plugin,具体如下:
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
</nonFilteredFileExtensions>
以上问题,就解决jar导出excel问题。