Java解析excel表格中的图片的方式
我们要用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表格中的图片的方式相关推荐
- Java读取Excel表格中的图片
前言 excel的图片并不是直接嵌入单元格中的,但是在插入图片时可以设置图片格式,将图片放入单元格中,代码就可以根据行号与列号定位到响应的图片. 读取图片 不同版本的excel有不同的拓展名(.xls ...
- NX二次开发 截图、向excel表格中插入图片 UF_DISP_create_framed_image
简介: NX二次开发 截图.向excel表格中插入图片 UF_DISP_create_framed_image 截图: UF_DISP_create_framed_image 插入图片 int id ...
- 【Python】通过xlsxwriter向excel表格中插入图片、本地超链接
通过python向excel表格中插入图片,且设置图片的本地超链接. 代码亲测可行,python版本为3.6.3 import xlsxwriter# 创建一个新Excel文件并添加一个工作表. wo ...
- Java读取Excel表格中的数据
文章目录 前言 一.添加jar包文件 1.在Eclipse工程下新建lib文件夹 2.复制jar包 3.将jar包粘贴到Eclipse中 4.配置构建路径 二.案例代码 1.新建类 2.获取Excel ...
- java填充excel表格中_填充导出Java导出excel表格
近期朋友几篇文章介绍了改填充导出的文章. 关联文章的地址 之前做项目的时候需要数据库导出excel格式,由于项目赶没实现,现在分享下如何用java导出excel.话不多说案例如下: 首先要做的是导入一 ...
- 使用java解析excel表格(包含表头判断)
1.FileUtils后面接的路径是src下的文件,FileUtils的jar包没有测试过,有待验证: 2.解析表格使用jar包是org.apache.poi的jar包: 3.判断某一行是否是表头下面 ...
- Java解析excel表格
第一步:引入相关依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxm ...
- Java读取Excel表格中的数据并插入到数据库中
这里写自定义目录标题 一.查看Excel表格 二.数据库中创建表 三.添加maven依赖 四.创建实体类 五.dao层接口添加新增方法 六.service层 1.service层接口 2.接口实现类 ...
- Java生成Excel表格数据的两种方式(Easy Excel和SXSSFWorkbook)以及测试方法
一. 使用alibaba中的Easy Excel工具 在gradle文件中引入依赖 dependencies {implementation 'com.alibaba:easyexcel:3.2.0' ...
最新文章
- 【Spring实战】—— 3 使用facotry-method创建单例Bean总结
- spring quartz 的定时器cronExpression表达式写法(转载)
- Print All JVM Flags
- jekyll网站上传服务器,jekyll 高效搭建个人博客之完整流程
- mysql-5.5.55 多实例安装总结
- 【windows下进程searchfilterhost.exe分析】
- 迭代器模式(Iterator)解析例子
- 自学python免费教材-最好的Python入门教材是哪本?
- JS----复制事件(文字选取)
- 81相似标准形02——初等变换、初等矩阵、相抵 (等价)、相抵标准形
- WINX的消息分派机制(续)
- 缓存算法及Redis、Memcached、Guava、Ehcache中的算法
- 聊聊 Material Design 里,阴影的那些事儿!
- Jenkins实现自动打包Android(安卓)程序
- 展现巨星风采!字母哥关键时刻挺身而出
- JavaSE之面向对象
- linux-常用命令整理(系统)
- 打印机无法打印-常见故障总结
- android拨号器源代码,android拨号器...
- c++用宏定义和函数来求圆的面积,半径可为表达式