excel服务器导出,避免文件损坏

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文件,从而避免文件损坏问题。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值