在项目中有时候会遇到往数据库中导数据的时候,往往需要把图片也一起导入execl表格中,那怎么才能把图片一块导入至execl中呢?那么今天我们就来看看怎么实现吧!

  如何实现?今天我们就来用jxl和poi分别实现一下怎么导入execl表格图片

1.首先用jxl实现把图片导入execl

  由于是测试我把路径和execl表格名称直接全都写死了

import jxl.Workbook;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import java.io.File;
import java.io.FileOutputStream; /**
* 用jxl导出模板
* @author pillar
* @date 2019-05-14
*/
public class testExecl {
public static void main(String[] args) throws Exception{ //要导出的图片地址
String pictureUrl = "D:"+ File.separator+"pillar"+ File.separator+"pilar.png";
//模板地址
String templateXlsFilePath= "D:"+ File.separator+"pillar"+File.separator+"pillarTest.xls";
//要导出execl的地址
String exportFilePath = "D:"+ File.separator+"pillar"+File.separator+"pillar.xls";
//导出execl模板
FileOutputStream outStream = new FileOutputStream(exportFilePath);
// 打开一个文件的副本,并且指定数据写回到原文件
Workbook templateWorkbook = Workbook.getWorkbook(new File(templateXlsFilePath));
WritableWorkbook book = Workbook.createWorkbook(outStream,templateWorkbook);
// 添加一个工作表
WritableSheet sheet = book.getSheet(0);
File file = new File(pictureUrl);
//设置图片位置
WritableImage image=new WritableImage(2, 2, 2, 3,file);
sheet.addImage(image); book.write();
book.close();
outStream.flush();
outStream.close();
}
}

  

执行运行之后效果如下

只要把参数正确传入类正确引用,我们就可以顺利实现啦。

2.我们再来看用poi怎么实现导入图片

import org.apache.poi.hssf.usermodel.*;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream; /**
* @author pillar
* @date 2019-05-14
*/
public class testPoiExecl {
public static void main(String[] args) throws Exception{ //将读取到的图片放在ByteArrayOutputStream中。。。
ByteArrayOutputStream byteArrayOutStream = new ByteArrayOutputStream();
//读取图片并写入byteArrayOutStream
BufferedImage bufferImg = ImageIO.read(new File("D:\\pillar\\pilar.png"));
ImageIO.write(bufferImg, "png", byteArrayOutStream);
//创建一个工作簿
HSSFWorkbook wb = new HSSFWorkbook();
//创建一个表格
HSSFSheet sheet = wb.createSheet();
//HSSFPatriarch类将图片写入execl
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
//设置图片的位置
HSSFClientAnchor anchor = new HSSFClientAnchor(10, 10, 1023, 250,(short) 2, 2, (short) 2, 2); patriarch.createPicture(anchor, wb.addPicture(byteArrayOutStream.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
//要导入的地址路径
FileOutputStream fileOut = new FileOutputStream("D:\\pillar\\pillarTest.xls");
// 写入excel文件
wb.write(fileOut);
fileOut.close();
}
}

  

运行之后图片如下所示

  我们通过两种方法实现了把图片导入到execl表格中,当然这只是简单实现把图片导入到execl表格中,里面还有好多可以设置的功能属性。

  如有不当之处,请指出,我们一起交流学习,共同进步!谢谢!

如何轻松的把图片导入execl表格中的更多相关文章

  1. 把Execl表格中的数据获取出来保存到数据库中

    比如我们遇到一些需要把execl表格中的数据保存到数据库中,一条一条保存效率底下而且容易出错,数据量少还好,一旦遇到数据量大的时候就会累死个人啊,下面我们就来把execl表格中数据保存到对应的数据库中 ...

  2. react 使用antd的在图片列表或表格中实现点击其他元素Checkbox选中功能

    antd官网上的Checkbox功能只能单独使用,在表格中加入Checkbox也只能点击Checkbox按钮才能实现选中或取消功能 如果我们要实在表格行中点击或在图片列表中点击图片就能实现选中或取消, ...

  3. MySQL中导入Excel表格中的数据

    在数据库中建立好响应的数据库.表(参考excel表格中列中的名字和内容): 将excel表格另存为txt文件,选择“文本文件(制表符分割)”: 打开相应的txt文件,只留下要导入的数据(windows ...

  4. oracle数据库中导入Excel表格中的数据

    1.点击[工具]-->[ODBC 导入器],如图: 2.在导入器里选择第一个[来自ODBC的数据],用户名/系统DSN-->填写[Excel Files],输入用户名和密码,点击 [连接] ...

  5. 导入exce表格中的数据l到数据库

    因为我的项目是JavaWeb的,所有是通过浏览器导入数据库到服务器端的数据库,这里我们采用struts来帮助我们完成. 1:首先定义一个文件上传的jsp页面.把我们的数据先上传到服务器端. <f ...

  6. 在java中实现数据导入excel表格中

    1.首先前端代码如下: 一个导出按钮:<input id="export" class="btn btn-primary" type="butt ...

  7. C#调用NPOI组件读取excel表格数据转为datatable写入word表格中并向word中插入图片/文字/书签 获得书签列表

    调用word的com组件将400条数据导入word表格中耗时10分钟简直不能忍受,使用NPOI组件耗时4秒钟.但是NPOI中替换书签内容的功能不知道是不支持还是没找到. 辅助类 Excel表格数据与D ...

  8. 如何使用免费控件将Word表格中的数据导入到Excel中

    我通常使用MS Excel来存储和处理大量数据,但有时候经常会碰到一个问题—我需要的数据存储在word表格中,而不是在Excel中,这样处理起来非常麻烦,尤其是在数据比较庞大的时候, 这时我迫切地需要 ...

  9. Java下载execl表格

    Java用POI往execl表格中写数据,并下载下来有两种方式 1.用poil的API创建表格,并设计好表格格式,然后往里面写数据 /** * execl导出 创建表格式,并写入数据 * @param ...

随机推荐

  1. 利用virt-manager,xmanager, xshell启动界面来管理虚拟机

    有时候我们需要搭建一套自己的简单环境来启动一个虚拟机,验证一些问题. 1.首先我利用vmware workstation来创建centos7虚拟机,然后开启虚拟化,如下图所示. 2.其次,启动虚拟机, ...

  2. selenium2截图ScreenShot的使用

    截图是做测试的基本技能,在有BUG的地方,截个图,保留失败的证据,也方便去重现BUG.所以,在自动化的过程中,也要能截图,也要能在我们想要截取的地方去截图,且能在错误产生时,自动的截图. 示例: 脚本 ...

  3. No identifier specified for entity: XXXX 错误

    在运行项目的时候报了下面的错误: by: org.hibernate.AnnotationException: No identifier specified for entity: com.exam ...

  4. luogu2590 [ZJOI2008]树的统计

    树剖裸题 #include <iostream> #include <cstdio> using namespace std; int n, uu, vv, hea[30005 ...

  5. Android 标题栏(2)

    本文来自网易云社区 作者:孙圣翔 添加ActionProvider 1.在menu菜单中添加app:actionProviderClass属性: <item     android:id=&qu ...

  6. 微信小程序的那些坑

    早闻微信小程序是个坑,结果名不虚传,细数一下我开发小程序遇过到坑. 1.UI组件过度封装. 微信小程序的组件是模仿react.js或vue.js的web组件设计的,并且封装了weui.css样式. P ...

  7. windows :Tomcat免安装版环境变量配置 + jdk配置

    1.  下载后解压,我解压的目录为:D:\Tomcat\apache-tomcat-9.0.1-windows-x64 2.  安装jdk和jre, 并配置环境变量: 2.1 用户变量新建JAVA_H ...

  8. python - 字符串的格式化输出

    # -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_2_str.py@ide: PyCharm Community ...

  9. day03_02 Python版本的选择

    总结:python2.x是遗产(过时),python3.x是现在和未来的语言 In summary : Python 2.x is legacy, Python 3.x is the present ...

  10. cobbler dell r730安装问题(四)

    环境介绍: 服务器硬件:dell-13代 R730 Intel xeon E5-2600系列CPU:E5-2609 v4.E5-2620 v4.E5-2650 v4 cobbler版本:cobbler ...