Java如何实现批量导出导入数据及附件文件zip包
导读:本文共5169.5字符,通常情况下阅读需要17分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要:创建后的文件目录为:"+file.getPath());}//1.输出Excel文件HSSFWorkbookworkbook=newHSSFWorkbook();HSSFSheetsheet=workbook.createSheet("sheet");StringfileName="XX数据导出.xls";StringsavePath=... ...
目录
(为您整理了一些要点),点击可以直达。在上一步生成的Excel文件路径下新建files文件夹,里面存放附件
其中的压缩方法如下:
这里开始想着在不解压的情况下读取里面的文件,结果没有走通。因为zip里面包含了子文件夹里面的附件信息需要解析。不解压直接解析文件适用于只需要解析zip包中第一层文件的场景,如果子文件夹下的文件也需要处理的话,最好解压后再处理。
这里解压遇到了一个问题,之前导出生成的zip包直接导入没问题,但是我把导出的包手动解压后修改了部分数据重新压缩后再导入报错:ZipInputStream解压远程文件报错,java.lang.IllegalArgumentException: MALFORMED
原因:文件名含有中文,zip解析出错
解决方案,如下行代码,在生成ZipInputStream的时候指定编码格式。
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(inputStream), Charset.forName(“GBK”));
注意:这里有个小难点就是File转换成MultipartFile的方法,因为项目中已经有的上传文件是MultipartFile格式的,转换一下就不用在实现一遍上传方法了。
我是用EasyExcel导入Excel文件的,代码很简单,需要注意用EasyExcel导入的Excel文件如果包含多个sheet页,需要写多个导入监听文件。
这一步实现方法跟导出时相同,去掉临时文件。
Java如何实现批量导出导入数据及附件文件zip包的详细内容,希望对您有所帮助,信息来源于网络。