当前位置: 首页 > news >正文

制作一个购物网站要多少钱网站培训方案

制作一个购物网站要多少钱,网站培训方案,wordpress 开发视频,做礼品公司网站的费用使用EasyExcel导出并压缩文件是一种高效且常见的解决方案,尤其适用于需要处理大量数据的场景。 1. 导出多个Excel文件并压缩成ZIP文件的基本流程 (1)数据准备:从数据库或其他数据源获取需要导出的数据,并将其存储在Ja…

     使用EasyExcel导出并压缩文件是一种高效且常见的解决方案,尤其适用于需要处理大量数据的场景。

1. 导出多个Excel文件并压缩成ZIP文件的基本流程

 (1)数据准备:从数据库或其他数据源获取需要导出的数据,并将其存储在Java对象中(如List<YourEntity>)。

(2)创建Excel文件:使用EasyExcel库将数据写入多个Excel文件。每个Excel文件可以对应一个Sheet表单。

(3)压缩文件:将生成的Excel文件打包成ZIP格式,通常通过ZipOutputStream实现。

(4)响应输出:将压缩后的ZIP文件作为附件返回给客户端或上传到文件服务器(如腾讯云COS)。

2. 具体实现方法

(1)依赖引入

在项目的pom.xml中添加EasyExcel依赖:

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>4.0.2</version>
</dependency>

该版本支持多种功能,包括流式写入、分批处理等。

(2)生成Excel文件

定义一个基础类(如UserData),并使用EasyExcel写入数据:

import lombok.Data;@Data
public class UserData {private Integer id;private String name;private Integer age;public UserData(Integer id, String name, Integer age) {this.id = id;this.name = name;this.age = age;}
}

定义一个对象,存放Excel文件名和文件流,压缩时使用 

import lombok.Data;import java.io.InputStream;@Data
public class ZipDto {public String name;public InputStream inputStream;public ZipDto(String name, InputStream inputStream) {this.name = name;this.inputStream = inputStream;}}

 生成excel文件

 public void exportUserData() {List<ZipDto> zipDtoList = new ArrayList<>();ZipDto zipDto = null;int pageNumber = 0;//每页查询数据库条数int PER_PAGE_SIZE =10000;com.alibaba.excel.ExcelWriter writer = null;WriteSheet sheet = null;try {while (true) {//分页从数据库加载业务数据List<UserData> list =baseMapper.findUserDataForExport(pageNumber * PER_PAGE_SIZE, PER_PAGE_SIZE);if (list.isEmpty()) {break;}ByteArrayOutputStream oi = new ByteArrayOutputStream();writer = EasyExcel.write(oi, UserData.class).build();sheet = EasyExcel.writerSheet(0).build();writer.write(list, sheet);writer.finish();zipDto = new ZipDto("用户信息" + DateUtil.now() + "-" + pageNumber + ".xlsx", new ByteArrayInputStream(oi.toByteArray()));zipDtoList.add(zipDto);if (list.size() < PER_PAGE_SIZE) {break;}pageNumber++;}if (CollUtil.isNotEmpty(zipDtoList)) {if (zipDtoList.size() == 1) {zipDto = zipDtoList.get(0);TencentCOSUtil.upLoad(zipDto.getInputstream(),"userData_" + DateUtil.format(new Date(), "yyyy-MM"),"xlsx");} else {ByteArrayOutputStream oi = new ByteArrayOutputStream();//将多个excel压缩为Zip文件ZipUtils.zipListStream(zipDtoList, oi);//如果集群部署,会导致文件下载失败,上传文件到云存储TencentCOSUtil.upLoad(new ByteArrayInputStream(oi.toByteArray()),"userData_" + DateUtil.format(new Date(), "yyyy-MM"), "zip");}}} catch (Exception e) {log.error("[exportUserData]导出失败:{}", e);} finally {if (writer != null) {writer.close();}}}

   TencentCOSUtil.upload(InputStream inputStream, String path, String suffix) 是将文件上传到腾讯云文件服务器。后续单独写一篇介绍如何上传文件到腾讯云

(3)压缩为Zip文件
 /*** 将多个流转成zip文件输出** @param listStream 文件流实体类对象* @param out        zip包的输出字节流* @return*/public static boolean zipListStream(List<ZipDto> listStream, ByteArrayOutputStream out) {boolean flag = false;BufferedInputStream bis = null;try (ZipOutputStream zos = new ZipOutputStream(out)) {for (ZipDto zipDto : listStream) {String fileName = zipDto.getName();// 创建ZIP实体,并添加进压缩包ZipEntry zipEntry = new ZipEntry(fileName);zos.putNextEntry(zipEntry);// 读取待压缩的文件并写进压缩包里bis = new BufferedInputStream(zipDto.getInputStream());byte[] buffer = new byte[1024];int len = 0;while ((len = bis.read(buffer)) != -1) {zos.write(buffer, 0, len);}}flag = true;} catch (Exception e) {log.error("[zipListStream]多个流转成zip文件异常",e);} finally {// 关闭流try {if (null != bis) {bis.close();}if (null != out) {out.close();}} catch (IOException e) {log.error(e.getMessage());}}return flag;}

3. 注意事项

  • 字符编码问题:在生成ZIP文件时,需确保文件名和内容的字符编码正确,避免中文乱码问题。
http://www.15wanjia.com/news/183428.html

相关文章:

  • 网站建设的格式什么是所见即所得的网页制作工具
  • 网站外链平台专业公司网站设计企业
  • 电影网站建设报价引流软件
  • 《网站开发与应用》大作业怎么免费网做百度收录的网站
  • 长沙网站托管哪家好网站后期维护协议
  • 广东省建设工程交易中心网站许柯wordpress
  • 360推广 网站建设保定 网站制作 招聘
  • 唐山网站制作网络公司视频拍摄器材
  • 张家港网站推广优化茶叶公司网站源码
  • 写作网站私密邯郸网站制作设计
  • 做民俗酒店到哪些网站推荐济南快速网站排名
  • 东铁匠营网站建设wordpress 会员推广插件
  • 国外好看的网站设计陕西网站建设哪家强
  • 网站域名实名认证怎么做做网站前端用什么软件
  • wordpress 转nodejs泉州seo托管
  • 在线制作网站页面企业网站页面宽哪里设置
  • 网站页面布局图片扬州哪家做网站好
  • 网站服务器建设价格wordpress更换数据库
  • 新云网站模版wordpress 公众号群发
  • 万维网网站续费公司网站建设工作计划
  • 绍兴专门做网站成都优秀网站建设
  • 成都网页设计多少钱seo人才
  • 云南网官方网站网站源码下载视频
  • 自己做的网站是怎么赚钱做外贸自己公司的网站一定要吗
  • 网站建设在微信里打广告内容六安市紧急公告
  • 做旅游网站赚钱吗wordpress 与 微信怎么配合
  • 我想克隆个网站 怎么做英国做电商网站有哪些
  • 企业网站建设参考文献免费的上色软件
  • 中通建设计院网站女生seo专员很难吗为什么
  • 怎么做免费网站附近广告设计与制作公司电话