首页 > 编程语言 >java excel带图片导入

java excel带图片导入

时间:2023-04-26 17:35:55浏览次数:44  
标签:java excel asImg field 导入 done asString 图片

日常项目中使用easyExcel 但是easyExcel不支持带图片的excel导入,后面通过网络查找,再加上询问技术经理终于解决,大前提是图片在excel中不是嵌入的,需要悬浮才可以读取。代码如下
 引用jar包为
   <!--需要2.10版本及以上不然excel缺少工具类-->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.11.0</version>
    </dependency>
    <dependency>
        <groupId>com.github.stupdit1t</groupId>
        <artifactId>poi-excel</artifactId>
        <version>3.0.1</version>
    </dependency>

</dependencies>

业务代码主要为

PoiResult<ProductTurnOrderPerfectQualityImportExcelVo> parse = ExcelHelper.opsParse(ProductTurnOrderPerfectQualityImportExcelVo.class)
            .from(file.getInputStream())
            // 指定数据区域
            .opsSheet(0, 1, 0)
            // 自定义列映射
            .opsColumn()
            // 强制输入字符串, 且不能为空
            .field("A", "cumulativeSales", "累计销量").asInt().done()
            .field("B", "cumulativeCustomerComplaints", "累计客诉量").asInt().done()
            .field("C", "cumulativeCustomerComplaintRate", "累计客诉率(%)").asBigDecimal().done()
            .field("D", "reciewScore", "reciew评分").asBigDecimal().done()
            .field("E", "cumulativeReturns", "累计退货量").asInt().done()
            .field("F", "cumulativeReturnRate", "累计退货率(%)").asBigDecimal().done()
            .field("G", "questionCategoryOne", "问题分类_1").asString().done()
            .field("H", "questionCategoryTwo", "问题分类_2").asString().done()
            .field("I", "questionCategoryThree", "问题分类_3").asString().done()
            .field("J", "image1", "图片").asImg().done()
            .field("K", "image2", "图片").asImg().done()
            .field("L", "image3", "图片").asImg().done()
            .field("M", "image4", "图片").asImg().done()
            .field("N", "image5", "图片").asImg().done()

            .done()
            .callBack((row, index) -> {
                // 行回调, 可以在这里改数据
                System.out.println("当前是第:" + index + " 数据是: " + row);
            })
            .parse();

映射对象中图片字段为

@ExcelProperty(value = "图片_5") private byte[] image5;

最后就是通过OSS工具上传到阿里云服务器,结束。

业务代码中抛出的异常为自定义异常,可以自己创建或直接打印在控制台。

标签:java,excel,asImg,field,导入,done,asString,图片
From: https://blog.51cto.com/u_15943410/6228207

相关文章

  • java程序执行exe脚本文件
    一、新建bat脚本文件,并写入执行exe脚本命令: 二、执行bat脚本:1StringfullPath="E:\\model-script\\ComSim-master.bat";2Filefile=newFile(fullPath);3if(file.exists()){//如果已存在,删除旧文件4file.delete();5......
  • java连接数据库的5种方式
    方式一直接导入第三方库驱动类这种加载方式在jdbc入门时已经用过,这个driver属于第三方库,。为静态加载,灵活性差,依赖性抢方式二使用反射机制获取方式一和方式二代码packagecom.hsp.edu;importcom.mysql.cj.jdbc.Driver;importjava.lang.reflect.Constructor;import......
  • Java程序部署成Windows服务
    大多数时候部署Java程序时,都是简单弄一个控制台,一是简单,二是能很方便监测运行是否正常。但如果是在服务器上部署这种模式就不可取,假设服务器重启了,重启之后不登录到远程桌面的话,即使把启动命令放到启动项,也不会自动运行。另一个问题就是,针对WindowsServer2008以后的操作系统,控制......
  • Java中关于String类以及字符串拼接的问题
    String类部分源码//被final修饰不可被继承publicfinalclassStringimplementsjava.io.Serializable,Comparable<String>,CharSequence{//String维护char[]所以不可修改privatefinalcharvalue[];创建String对象的方式str1它首先会去方法区的常量池......
  • Java通过反射给final对象赋值(代码库)
    直接赋值会报错Methodthrew'java.lang.UnsupportedOperationException'exception.给没有set方法的类如下赋值publicstaticvoidsetFieldValue(Objectobj,StringfieldName,Objectval){if(isEmpty(obj)||isEmpty(fieldName))return;ClasssuperClas......
  • 测试Java初学者建议
    作为测试工程师,我们需要具备扎实的编程技能,能够熟练掌握至少一门编程语言。因为测试工作本身就需要编写测试脚本、开发自动化测试工具和测试框架等,这些工作离不开编程语言的支持。同时,编程语言的不断更新和变化也要求我们不断学习和提升。选择一门适合自己的编程语言学习,可以帮助......
  • Android进阶之路 - Java 单元测试
    在此之前,我在单元测试的时候,往往会单独创建一个Demo去进行功能实现,这俩天正好闲下来,所以快速的掌握了一下这个知识点,挺简单的,下面看图说话,看完你就出师了Lookhere~:此文讲的并不高深,扩展也有限,我的目的仅仅是初步且快速的掌握单元测试使用方式,从而提升自己的开发效率~单元......
  • 打卡4(java)
    importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);inta=sc.nextInt(),b=sc.nextInt();intc=sc.nextInt(),d=sc.nextInt();intx=a*60+b,y=c*60+d;......
  • Android结构优化 - Java、Kotlin项目结构分包
    随着Android中Java、Kotlin的混编开发场景越来越多,其中大多人都会将java文件和kt文件放在同一个资源文件夹下,在项目越来越大的情况下,我们进行代码查询、项目重构、优化都不太便捷,所以本篇主要记录通过kotlin分包、java分包来区分、整合java类和kotlin类因为目前项目为......
  • python与java 对应的加密算法
    python与java对应的加密算法1.gzip加密java的gzip加密:importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.util.Arrays;importjava.util.zip.GZIPInputStream;importjava.util.zip.GZIPOutputStream;publicclassHello{......