网站首页 > 技术文章 正文
MyExcel,是一个集导入、导出、加密 Excel 等多项功能的 Java 工具包。
导出图片也是Excel导出比较常见的一种场景。在MyExcel中,图片导出分为列表型图片导出以及模板图片导出,实现如下:
依赖导入
Maven:
<dependency>
<groupId>com.github.liaochong</groupId>
<artifactId>myexcel</artifactId>
<version>4.4.2</version>
</dependency>
Gradle:
compile group: 'com.github.liaochong', name: 'myexcel', version: '4.4.2'
列表型图片导出
列表型导出,指的是基于类模型的导出,如下:
public class Flower {
@ExcelColumn(title="名称")
private String name;
@ExcelColumn(title="图片", fileType = FileType.IMAGE)
private File image;
}
MyExcel支持多种格式数据导出,除了File,还包括:
- InputStream
- Path
- 绝对路径
- HTTP:https://img1.baidu.com/it/u=1499001738,37769528&fm=253&fmt=auto&app=120&f=JPEG?w=889&h=500
- data:image/png;base64,iVBOR.....
如果希望控制缩放、宽高以及间距,可使用如下注解:
@ExcelColumn(fileType = FileType.IMAGE
, image = @Image(scaleX = 1,scaleY = 1,width = 10, height = 30, marginTop=10, marginLeft=20))
private File image;
需要注意的是,缩放和自定义宽高是冲突的,缩放优先于自定义宽高。
相关导出实现代码,可移步参见:流式导出
模板图片导出
此处模板指的是HTML模板。
在HTML模板中,导出图片需要使用img标签,如下:
<table>
<td>
<img src="图片路径(绝对路径、Http、base64)"/>
</td>
</table>
默认情况下,导出图片会间隔单元格上侧、左侧约3像素,自适应单元格大小(即会根据单元格大小进行自适应收缩或者扩大),如需保持图片原大小比例,需要配合scale属性,如下:
<table>
<td>
<img src="图片路径(绝对路径、Http、base64)" scale="1,1"/>
</td>
</table>
resize(1.0,1.0) keeps the original size
resize(0.5,0.5) resize to 50% of the original
resize(2.0,2.0) resizes to 200% of the original
需要注意的是,保持原比例当前仅支持JPEG 和 PNG 图片。
如需自定义宽高、间距等,需要设定样式,如下:
<img src="图片路径(绝对路径、Http、base64)" style="width:10px;height:30px;marginTop:5px;marginLeft:10px;"/>
相关导出实现代码,可移步参见:HTML模板导出
最后
MyExcel功能非常丰富,如需了解其他功能,请留言或移步仓库文档:Home · liaochong/myexcel Wiki · GitHub
猜你喜欢
- 2024-10-16 【验证码逆向专栏】百某网数字九宫格验证码逆向分析
- 2024-10-16 jquery-利用canvas让图片旋转角度
- 2024-10-16 一文带你搞懂JS实现压缩图片 js压缩上传图片
- 2024-10-16 前端性能优化之请求优化 前端性能优化问题
- 2024-10-16 Serverless 实战:如何为你的头像增加点装饰?
- 2024-10-16 谈谈图片上传及canvas压缩的流程 js 图片压缩后上传
- 2024-10-16 妹子委婉地和男友说没钱了,结果差点换来一张luo照?
- 2024-10-16 Blob-对象介绍 对象object
- 2024-10-16 《小白HTML5成长之路51》canvas压缩图片上传功能的原理
- 2024-10-16 Dom-to-image截图将html生成图片 html2canvas截图
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)