ecplise下载excel模板,从服务器导出,主要分为两部:
1.写导出功能;
2.当用maven打包编译时,指定不过滤excel格式的文件。
具体如下:
导出代码
FileInputStream inputStream=null;
ServletOutputStream outputStream=null;
try {
String fileName="entTemplate.xlsx";
File file = new ClassPathResource(fileName).getFile();
inputStream = new FileInputStream(file);
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.addHeader("Content-Disposition",
"attachment;filename=" + new String(fileName.getBytes("utf-8"), "ISO8859-1"));
outputStream = response.getOutputStream();
byte[] b= new byte[2048];
int lenth;
while(true){
lenth =inputStream.read(b);
if (lenth == -1)
break;
outputStream.write(b,0,lenth);
}
//修正 Excel在“xxx.xlsx”中发现不可读取的内容。是否恢复此工作薄的内容?如果信任此工作簿的来源,请点击"是"
response.setHeader("Content-Length", String.valueOf(inputStream.available()));
}catch (Exception e) {
log.error("e:",e);
}finally {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
}
maven依赖打包配置
在pom.xml中
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<!--maven打包过滤不编译excel文件 -->
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
根据以上两步则可从服务器导出excel文件,从而避免文件损坏问题。