我们要用java解析首先得在项目中引入解析excel的相关包,我们这里使用的是apache的poi-3.12.jar来做开发。

首先获取excel文件,获取文件的方式这里就不细说了,获取到文件后,将文件转成文件输入流

FileInputStream fis = new FileInputStream(new File(pathname));//pathname文件路径

定义方法getPictureFromExcel(FileInputStream fis, int sheetNum),接收输入流fis,和Excel表中的sheet编号,即在第几张表格中。方法返回值为一个Map<String,PictureData>,引入org.apache.poi.ss.usermodel.PictureData对象:

import org.apache.poi.ss.usermodel.PictureData;

通过WorkbookFactory这个工厂通过输入流获取到HSSFWorkbook对象,引入两个包:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

具体实现方法如下:

 /*** 获取excel表中的图片* @return* @Param fis 文件输入流* @Param sheetNum Excel表中的sheet编号* @throws IOException * @throws InvalidFormatException * @throws EncryptedDocumentException */public Map<String, PictureData> getPictureFromExcel(FileInputStream fis, int
sheetNum) throws EncryptedDocumentException, InvalidFormatException, IOException{//创建MapMap<String, PictureData> map = new HashMap<String, PictureData>();//获取HSSFWorkbook对象HSSFWorkbook workbook = (HSSFWorkbook) WorkbookFactory.create(fis);//获取图片HSSFPictureData集合List<HSSFPictureData> pictures = workbook.getAllPictures();//获取当前表编码所对应的表 HSSFSheet sheet = (HSSFSheet) workbook.getSheetAt(sheetNum - 1);//对表格进行操作for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) {HSSFClientAnchor anchor = (HSSFClientAnchor) shape.getAnchor();if (shape instanceof HSSFPicture) {HSSFPicture pic = (HSSFPicture) shape;//获取行编号int row = anchor.getRow2();//获取列编号 int col = anchor.getCol2();int pictureIndex = pic.getPictureIndex()-1;HSSFPictureData picData = pictures.get(pictureIndex);map.put(row+":"+col, picData);}}return map;}

最后只需要调用此方法转成文件保存(或者上传ftp服务器,传ftp的方法就不写了)就行了

public static void main(String [] args){PictureData picData = map.get(hang-1+":"+20);//String ext = picData.suggestFileExtension();//获取图片的后缀名byte[] data = picData.getData();String fileName = UUID.randomUUID().toString();//文件夹路径:temporarypath String temporarypath = FtpPropertiesLoader.get("temporarypath");FileOutputStream out = new FileOutputStream(temporarypath + fileName + ".jpg");out.write(data); out.close();
}

Java解析excel表格中的图片的方式相关推荐

  1. Java读取Excel表格中的图片

    前言 excel的图片并不是直接嵌入单元格中的,但是在插入图片时可以设置图片格式,将图片放入单元格中,代码就可以根据行号与列号定位到响应的图片. 读取图片 不同版本的excel有不同的拓展名(.xls ...

  2. NX二次开发 截图、向excel表格中插入图片 UF_DISP_create_framed_image

    简介: NX二次开发 截图.向excel表格中插入图片 UF_DISP_create_framed_image 截图: UF_DISP_create_framed_image 插入图片 int id ...

  3. 【Python】通过xlsxwriter向excel表格中插入图片、本地超链接

    通过python向excel表格中插入图片,且设置图片的本地超链接. 代码亲测可行,python版本为3.6.3 import xlsxwriter# 创建一个新Excel文件并添加一个工作表. wo ...

  4. Java读取Excel表格中的数据

    文章目录 前言 一.添加jar包文件 1.在Eclipse工程下新建lib文件夹 2.复制jar包 3.将jar包粘贴到Eclipse中 4.配置构建路径 二.案例代码 1.新建类 2.获取Excel ...

  5. java填充excel表格中_填充导出Java导出excel表格

    近期朋友几篇文章介绍了改填充导出的文章. 关联文章的地址 之前做项目的时候需要数据库导出excel格式,由于项目赶没实现,现在分享下如何用java导出excel.话不多说案例如下: 首先要做的是导入一 ...

  6. 使用java解析excel表格(包含表头判断)

    1.FileUtils后面接的路径是src下的文件,FileUtils的jar包没有测试过,有待验证: 2.解析表格使用jar包是org.apache.poi的jar包: 3.判断某一行是否是表头下面 ...

  7. Java解析excel表格

    第一步:引入相关依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxm ...

  8. Java读取Excel表格中的数据并插入到数据库中

    这里写自定义目录标题 一.查看Excel表格 二.数据库中创建表 三.添加maven依赖 四.创建实体类 五.dao层接口添加新增方法 六.service层 1.service层接口 2.接口实现类 ...

  9. Java生成Excel表格数据的两种方式(Easy Excel和SXSSFWorkbook)以及测试方法

    一. 使用alibaba中的Easy Excel工具 在gradle文件中引入依赖 dependencies {implementation 'com.alibaba:easyexcel:3.2.0' ...

最新文章

  1. 【Spring实战】—— 3 使用facotry-method创建单例Bean总结
  2. spring quartz 的定时器cronExpression表达式写法(转载)
  3. Print All JVM Flags
  4. jekyll网站上传服务器,jekyll 高效搭建个人博客之完整流程
  5. mysql-5.5.55 多实例安装总结
  6. 【windows下进程searchfilterhost.exe分析】
  7. 迭代器模式(Iterator)解析例子
  8. 自学python免费教材-最好的Python入门教材是哪本?
  9. JS----复制事件(文字选取)
  10. 81相似标准形02——初等变换、初等矩阵、相抵 (等价)、相抵标准形
  11. WINX的消息分派机制(续)
  12. 缓存算法及Redis、Memcached、Guava、Ehcache中的算法
  13. 聊聊 Material Design 里,阴影的那些事儿!
  14. Jenkins实现自动打包Android(安卓)程序
  15. 展现巨星风采!字母哥关键时刻挺身而出
  16. JavaSE之面向对象
  17. linux-常用命令整理(系统)
  18. 打印机无法打印-常见故障总结
  19. android拨号器源代码,android拨号器...
  20. c++用宏定义和函数来求圆的面积,半径可为表达式

热门文章

  1. STEP文件格式(*.step, *.stp)是什么软件。怎样打开
  2. js实现汉字中文排序
  3. Linux根目录下各文件都是存放什么的
  4. Unity网络开发实践
  5. java继承excel_Java操作Excel
  6. 魔方NewLife.Cube升级v2.0
  7. 用思维图整理的英语语法
  8. Elasticsearch 设置用户名密码认证(亲测)
  9. 别提996!腾讯2022校招起薪40w,大厂招人铁了心要卷
  10. 2019多益网络面经