计算机系统应用教程网站

网站首页 > 技术文章 正文

[MyExcel] 图片导出 excel图片导出表格

btikc 2024-10-16 08:18:52 技术文章 4 ℃ 0 评论

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

需要注意的是,保持原比例当前仅支持JPEGPNG 图片。

如需自定义宽高、间距等,需要设定样式,如下:

<img src="图片路径(绝对路径、Http、base64)" style="width:10px;height:30px;marginTop:5px;marginLeft:10px;"/>

相关导出实现代码,可移步参见:HTML模板导出

最后

MyExcel功能非常丰富,如需了解其他功能,请留言或移步仓库文档:Home · liaochong/myexcel Wiki · GitHub

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表