springboot+hutool如何批量生成二维码压缩导出功能
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,这篇文章主要介绍springboot+hutool如何批量生成二维码压缩导出功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.引入依赖 com.google.zxing core 3.4.1 cn.hutool hutool-all 5.7.14
2.测试编码
QrConfig config = new QrConfig(300, 300);// 设置边距,既二维码和背景之间的边距 config.setMargin(3);// 设置前景色,既二维码颜色(青色) config.setForeColor(Color.CYAN);// 设置背景色(灰色) config.setBackColor(Color.GRAY);// 生成二维码到文件,也可以到流 QrCodeUtil.generate("12345678", config, FileUtil.file("E:/image/12345678.jpg"));3.批量生成

然而我们要批量生成不可能完全靠手输,接下来实现导入excel表批量生成。
需要引入poi依赖:
4.解析excel
org.apache.poi poi-ooxml 5.0.0
准备好一份表格:

测试读取:
5.批量图片压缩
单张图片输出或下载也不方便,这时候我们要用到压缩
批量导出压缩文件
代码如下
/** * 将文件打包成zip并下载 */ @PostMapping(value = "xiazai",consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @ApiOperation("导出压缩包") public void download(HttpServletResponse response) throws IOException { response.setHeader("content-type", "application/octet-stream"); response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); response.setContentType("application/octet-stream"); response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=download.zip"); CompressUtil.createArchiver(CharsetUtil.CHARSET_UTF_8, ArchiveStreamFactory.ZIP,response.getOutputStream()) .add(FileUtil.file("E:/image"));// ZipUtils.pngZip(response.getOutputStream(), qrImages); }6.上传excel直接将输出流转成压缩包
尝试上传excel生成二维码压缩包并下载(不会在服务器生成文件)
代码如下:
/** * 图片内容与名字 */@Datapublic class QrImage { private byte[] bytes; private String name;}/** * 将生成的二维码字节流压缩导出 * @param outputStream * @param qrImages */ public static void pngZip(OutputStream outputStream,ListqrImages) { //Zip输出流 ZipOutputStream zipOutputStream = null; try { zipOutputStream = new ZipOutputStream(outputStream); for (QrImage file : qrImages) { ZipEntry zipEntry = new ZipEntry(file.getName()+".png"); zipOutputStream.putNextEntry(zipEntry); //写数据 zipOutputStream.write(file.getBytes(), 0, file.getBytes().length); zipOutputStream.flush(); } zipOutputStream.flush(); zipOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } finally { // 关闭流 try { if (zipOutputStream != null) { zipOutputStream.close(); } if (outputStream != null) { outputStream.close(); } } catch (IOException e) { e.printStackTrace(); } } }
/** * 将文件打包成zip并下载 */ @PostMapping(value = "xiazai",consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @ApiImplicitParam(name = "excelFile",value = "excel导入",required = true,dataType="MultipartFile",allowMultiple = true,paramType = "query") @ApiOperation("导出压缩包") public void download(@RequestParam("excelFile") MultipartFile file, HttpServletResponse response) throws IOException { //读取excel ExcelReader reader = ExcelUtil.getReader(file.getInputStream()); List> lists = reader.read(); //删除标题 lists.remove(0); //批量生成二维码 List qrImages = create(lists); response.setHeader("content-type", "application/octet-stream"); response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); response.setContentType("application/octet-stream"); response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=download.zip");// CompressUtil.createArchiver(CharsetUtil.CHARSET_UTF_8, ArchiveStreamFactory.ZIP,response.getOutputStream())// .add(FileUtil.file("E:/image")); ZipUtils.pngZip(response.getOutputStream(), qrImages); } public List create(List> list) throws FileNotFoundException { QrConfig config = new QrConfig(300, 300);// 设置边距,既二维码和背景之间的边距 config.setMargin(3);// 设置前景色,既二维码颜色(青色) config.setForeColor(Color.CYAN);// 设置背景色(灰色) config.setBackColor(Color.GRAY); byte[] bytes=null; List qrImages = new ArrayList<>(); QrImage qrImage;// 生成二维码到文件,也可以到流 for (List
以上是"springboot+hutool如何批量生成二维码压缩导出功能"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
二维
二维码
生成
文件
内容
背景
图片
输出
功能
之间
代码
景色
灰色
篇文章
青色
颜色
测试
接下来
价值
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发人员单价计算
互联网网络安全警务室
软件开发过程全套表单
工控网络安全的特征
安全的rust服务器托管
樊城区刑侦大队网络安全中心
网络安全法四十四条 违反
网络技术挑战赛组委会主任
贝尔地板公司的服务器地址
被执行信息数据库
济南地区哪里有联想服务器
广东众益互联网络科技有限公司
部队租用服务器
珠海软件开发推荐小罗25
邮件服务器归谁管理
计算机网络技术电脑推荐
我的世界神奇宝贝喵物语服务器
资讯app客户端数据库
蜀山区网络技术联系人
jsp访问数据库代码在哪里
检察院强化信息化网络安全建设
闵行区软件开发案例
收发终端软件开发
加强网络安全工作的报告
腾讯服务器怎样登录
阿里云服务器基础版毫无安全
电脑如何删除网络安全密匙
北京有游族网络技术有限公司
中国互联网科技名企英文
首都网络安全日展台