生成二维码,批量导出带格式的execl
1.导入pom
<dependency><groupId>com.gitee.lwpwork</groupId><artifactId>excel</artifactId><version>0.0.2-RELEASE</version></dependency>
2.对象实体类
package execl;import com.lwp.excel.annotation.Cell;
import com.lwp.excel.annotation.Sheet;
import com.lwp.excel.annotation.Style;
import com.lwp.excel.annotation.Title;
import com.lwp.excel.resolver.ExcelAble;
import lombok.Data;@Data
@Sheet(name = "二维码" )
@Title(value = "生产车间二维码",heightInPoints = 30)
public class QrCode implements ExcelAble {@Cell(value = "编号")private String number;@Cell(value = "规格")private String code;@Cell(value = "状态")private String status;@Cell(value = "日期")private String date;@Cell(value = "创建人")private String createBy;@Cell(value = "二维码")private String image;}
3.实现类
package execl;import com.lwp.excel.util.ExcelUtil;
import org.apache.poi.hssf.usermodel.*;import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.List;public class ExprExeclMain {static String filePath = "C:\\Users\\pax\\Desktop\\js\\" ;public static void main(String[] args) throws Exception {String fileName = "qrcode.xls";String path = filePath + fileName;Long start = System.currentTimeMillis(); // 开始时间List<QrCode> qrCodes = qrCodeInit();//初始化数据列表。HSSFWorkbook wb = ExcelUtil.exportExcel(qrCodes);//生成Excel的HSSFWorkbook 对象。auotCreateQrCode(wb,qrCodes); //设置生产二维码ExcelUtil.createExcelFile(wb,path);//生成文件System.out.println(System.currentTimeMillis()-start); //结束时间}/*** 设置单元格样式,插入二维码* @param wb* @param qrCodes* @throws Exception*/public static void auotCreateQrCode(HSSFWorkbook wb ,List<QrCode> qrCodes) throws Exception {//读一张图片String imag = "qrCodeUrl_taima_0001000001.png";String imagePath = filePath + imag;ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();Image src = Toolkit.getDefaultToolkit().getImage(imagePath);BufferedImage bufferImg = toBufferedImage(src);ImageIO.write(bufferImg, "jpg", byteArrayOut);//画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)HSSFSheet sheet1 = wb.getSheetAt(0);sheet1.setColumnWidth(5,1000 *5); // 二维码那列的宽度HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();//生产二维码数据for(int i = 0 ; i< qrCodes.size() ; i++){System.out.println("数据 :"+i);sheet1.getRow(2+i).setHeight((short) 2000); //每行数据高度//anchor主要用于设置图片的属性HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 255,(short) 5, 2 +i, (short) 5, 2+i);anchor.setAnchorType(3);//插入图片patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));}}public static List<QrCode> qrCodeInit(){List<QrCode> qrCodes = new ArrayList<QrCode>();for(int i=0 ; i<10; i++){QrCode qrCode = new QrCode();qrCode.setNumber("No."+i);qrCode.setCode("YX-123000"+i);qrCode.setCreateBy("管理员");qrCode.setDate("2021-01-06");qrCode.setStatus("正常");qrCodes.add(qrCode);}return qrCodes;}/*** 图片转换* @param image* @return*/public static BufferedImage toBufferedImage(Image image) {if (image instanceof BufferedImage) {return (BufferedImage)image;}image = new ImageIcon(image).getImage();BufferedImage bimage = null;GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();try {int transparency = Transparency.OPAQUE;GraphicsDevice gs = ge.getDefaultScreenDevice();GraphicsConfiguration gc = gs.getDefaultConfiguration();bimage = gc.createCompatibleImage(image.getWidth(null), image.getHeight(null), transparency);} catch (HeadlessException e) {}if (bimage == null) {int type = BufferedImage.TYPE_INT_RGB;bimage = new BufferedImage(image.getWidth(null), image.getHeight(null), type);}Graphics g = bimage.createGraphics();g.drawImage(image, 0, 0, null);g.dispose();return bimage;}
}
参考链接:https://blog.csdn.net/qq_36622496/article/details/100152838
生成二维码,批量导出带格式的execl相关推荐
- Zxing生成二维码(可带图标)
Zxing生成二维码(可带图标) SwetakeQRCode.BarCode4j.Zxing-- 生成二维码的开源项很多,在下不才只目前只了解这几个, 选择Zxing的原因可能是因为google吧,还 ...
- java使用zxing生成二维码,可带logo和底部文字
java使用zxing生成二维码,可带logo和底部文字 springboot中整合zxing生成二维码 一.导入依赖 <properties><zxing.version>3 ...
- springboot+hutool批量生成二维码压缩导出
文章目录 1.引入依赖 2.测试编码 3.批量生成 4.解析excel 5.批量图片压缩 6.上传excel直接将输出流转成压缩包 1.引入依赖 <!-- 生成二维码依赖--><de ...
- vue前端生成二维码并导出PDF
1.安装插件 npm install --save qrcodejs2 (这是生成微信二维码插件) npm install html2canvas jspdf --save (这是将html页面转化为 ...
- vue-qr 二维码 批量 导出
参考Vue批量生成二维码并打包下载 首先我们需要安装三个插件 "jszip"//zip打包 "file-saver"//文件保存 "vue-qr&qu ...
- 生成二维码并以图片格式下载-qrcodejs2
最近在做项目,碰到票据完成后的生成二维码以及提供下载功能,这里谈谈个人实战经验: 先上代码: 引入: html: js: 说明: 网上文章里提到的插件很多,但是好像并不是都有用(有点坑),实践之后发现 ...
- .NetCore使用Gma.QrCodeNet生成二维码显示VCard名片格式
部分数据从下面这个链接来的,只是觉得代码比较冗余,所以........ 想看的可以去看下: C# 生成 联系人 二维码_勇敢小菜鸟的博客-CSDN博客NuGet 引用库不废话贴代码:using Gma ...
- C# Qrcode生成二维码支持中文,带图片,带文字
1.下载Qrcode库源码,下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library 2.打开源码时,部分类库 ...
- Qrcode生成二维码支持中文,带图片,带文字
1.下载Qrcode库源码, 下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library 2.打开源码时, 部分 ...
- php生成二维码工具(带LOGO)
前期准备: 1.phpqrcode类文件下载,链接:https://pan.baidu.com/s/10TNC_wuHHE8Km_iO5aakZg 提取码:kb08 2.PHP环境必须开启支持GD2扩 ...
最新文章
- 冠军方案分享:ICPR 2020大规模商品图像识别挑战赛冠军解读
- gnokii 短信猫 中文安装使用文档
- NUC1373 Bank Interest【水题】
- 优化ASP.NET应用程序性能研究与探讨
- 机器学习理论《统计学习方法》学习笔记:奇异值分解(SVD)
- Twitter Snowflake
- [python opencv 计算机视觉零基础到实战] 十三 直方图颜色提鲜
- mysql架构深入_mysql性能优化2:深入认识mysql体系架构
- TSP旅行商问题之分支界限法法求解(C语言)
- 助老打车暖心车站落地杭州 帮助老年人扫码一键叫车
- MVC三层架构在各框架中的特征
- lucene中的nrt
- JS判断手机端是否安装某应用
- 【成功智慧】010.依靠忍耐度过困难时期
- K均值聚类算法(K-Means)
- 永恒之蓝漏洞复现及上传后门程序
- android 点赞 1,Android自定义FloatingText仿点赞+1特效
- python 节假日_python判断工作日,节假日
- 深度学习网络各种激活函数 Sigmoid、Tanh、ReLU、Leaky_ReLU、SiLU、Mish
- Latex CJK,tex使用中文