Android修行手册-实现利用POI将图片插入到Excel中(文末送书)

这篇具有很好参考价值的文章主要介绍了Android修行手册-实现利用POI将图片插入到Excel中(文末送书)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Unity3D特效百例 案例项目实战源码 Android-Unity实战问题汇总
游戏脚本-辅助自动化 Android控件全解手册 再战Android系列
Scratch编程案例 软考全系列 Unity3D学习专栏
蓝桥系列 ChatGPT和AIGC

👉关于作者

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,交流让学习不再孤单

Android修行手册-实现利用POI将图片插入到Excel中(文末送书),熬夜再战Android系列,android,excel,poi,自动化

👉实践过程

😜问题

前两天有个小工具的开发,实现自动化将Excel中的图片链接Down下来然后插入到Excel表格中。朋友一直维护着任务类的(就那种打分评分啊,刷好评啊那些)。她量大,需要审核,靠人力实在是劳累。所以我研究了自动化。

😜解决

实现插入图片有两种方式

方式一

直接插入到指定单元格,该方式适用于 Java 端,也就是在 PC上用,Android 因为缺少 resize的内容会报错。博主没找那么多资料看如何解决,我就直接用了方式二,支持Android的。

    /**
    * @param workbook  workbook对象
    * @param sheet   工作簿对象
    * @param fileUrl  URL
    * @param row  第多少行
    * @param col  第多少列
    * @param scaleX   X轴
    * @param scaleY   Y轴
     */
    public static void picture2(Workbook workbook, Sheet sheet, String fileUrl, int row, int col, double scaleX, double scaleY) {
		try {
			//防止URL地址有中文,解码
			String head = fileUrl.substring(0, fileUrl.lastIndexOf("/")+1);
			String suffix = fileUrl.substring(fileUrl.lastIndexOf("/")+1);
			String link = head + URLEncoder.encode(suffix,"UTF-8");
            URL url = new URL(link);  // 构造URL
            URLConnection con = url.openConnection(); // 打开连接
            con.setConnectTimeout(8 * 1000);   //设置请求超时
            InputStream is = con.getInputStream();  // 输入流
			byte[] bytes = IOUtils.toByteArray(is);
	        @SuppressWarnings("static-access")
			int pictureIdx = workbook.addPicture(bytes, workbook.PICTURE_TYPE_PNG); //参数二是图片格式 还有jpg格式等
	        CreationHelper helper = workbook.getCreationHelper();
	        Drawing drawing = sheet.createDrawingPatriarch();
	        ClientAnchor anchor = helper.createClientAnchor();
	        anchor.setCol1(col); // 图片插入坐标
	        anchor.setRow1(row);
	        Picture pict = drawing.createPicture(anchor, pictureIdx); // 插入图片
	        pict.resize(scaleX, scaleY);  // 这个方法在 Android 端会造成崩溃。
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
    }

方式二

虽然复杂点,但是无论是多端还是定制性都更强一些。该方式是插入坐标,坐标稍微复杂些。

    public static void picture(Workbook workbook, Sheet sheet, String fileUrl, String fileType, int row, int col) {
        try {
            Drawing patriarch = sheet.createDrawingPatriarch();
            URL url = new URL(fileUrl);  // 构造URL
            URLConnection con = url.openConnection();   // 打开连接
            con.setConnectTimeout(8 * 1000);  //设置请求超时
            InputStream is = con.getInputStream();    // 输入流
            ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
            BufferedImage bufferImg = ImageIO.read(is);
            ImageIO.write(bufferImg, "JPEG", byteArrayOut);
			bufferImg.flush();
			byteArrayOut.flush();
            XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0,( short ) 0, 0, ( short ) 5, 8);
            patriarch.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));   //参数二是图片格式 还有png格式等
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

主要解释一下定位图片位置函数 ClientAnchor 的八个参数int dx1, int dy1, int dx2, int dy2, short col1, int row1, short col2, int row2
前四个表示的是 excel 边框的内距离,我们通常情况下都是0。
Android修行手册-实现利用POI将图片插入到Excel中(文末送书),熬夜再战Android系列,android,excel,poi,自动化
Android修行手册-实现利用POI将图片插入到Excel中(文末送书),熬夜再战Android系列,android,excel,poi,自动化
重点要看后四个参数
short col1, int row1, short col2, int row2
前两个表示图片左上角所在的单元格左上角的位置,这个不难理解。
后两个表示图片右下角所在的单元格左上角的位置,这个要特别留意
Android修行手册-实现利用POI将图片插入到Excel中(文末送书),熬夜再战Android系列,android,excel,poi,自动化
Android修行手册-实现利用POI将图片插入到Excel中(文末送书),熬夜再战Android系列,android,excel,poi,自动化
横向的 A B C D列 是从0开始数的,图中 C是 2 竖着的是 4 ,自然起始左上角就是 2 ,4 。 右下角是同理

👉其他

📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

👑评论区抽奖送书

最后在评论区进行抽取三名幸运的小伙伴 送下面这本书籍
Android修行手册-实现利用POI将图片插入到Excel中(文末送书),熬夜再战Android系列,android,excel,poi,自动化

笔者(博哥)具有10多年的开发经验,2017年开始做算法试题并在公众号发布试题讲解,经常游走在全球30多个算法网站之间,累计做题2000多道,对算法试题有自己独特的解题思路和技巧。

笔者写这本书的初衷是希望能够帮助更多的程序员快速学习算法,我们都知道算法在整个IT行业算是比较难的,之前有很过程序员通过公众号加笔者微信,请教关于算法的题,刚开始笔者一一进行了回复,后来随着咨询量越来越大,笔者意识到大家迫切地需要算法相关知识的系统指导。结合笔者过往的写作和从业经历,便着手写一本算法书籍,希望能欧帮助大家更好地学习算法,于是这本《算法秘籍》就诞生了。

🎁抽奖规则

给本篇博客文章点赞 收藏 评论三连,在文章发文5天后,我会将三连的朋友放到随机抽奖小工具中抽取并进行公布。中的几率还是很大的哦~ 想看书的小伙伴参与起来!
没抽到的,但是喜欢这本书的小伙伴也可以在网上自行购买哈,官方正品商店购买即可!

🎄推荐理由(⭐⭐⭐⭐⭐)

Android修行手册-实现利用POI将图片插入到Excel中(文末送书),熬夜再战Android系列,android,excel,poi,自动化

温馨提示点击下方卡片获取更多意想不到的资源。
Android修行手册-实现利用POI将图片插入到Excel中(文末送书),熬夜再战Android系列,android,excel,poi,自动化文章来源地址https://www.toymoban.com/news/detail-752159.html

到了这里,关于Android修行手册-实现利用POI将图片插入到Excel中(文末送书)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android修行手册 - CalendarView

    往期文章分享 点击跳转=《导航贴》- Unity手册,系统实战学习 点击跳转=《导航贴》- Android手册,重温移动开发 本文约3.7千字,新手阅读需要3分钟,复习需要1分钟 【 收藏随时查阅不再迷路 】 众所周知,人生是一个漫长的流程,不断 克服困难 ,不断反思前进的过程。在这

    2024年01月15日
    浏览(32)
  • Android修行手册 - VideoView全解-上

    往期文章分享 点击跳转=《导航贴》- Unity手册,系统实战学习 点击跳转=《导航贴》- Android手册,重温移动开发 本文约4.8千字,新手阅读需要9分钟,复习需要3分钟 【 收藏随时查阅不再迷路 】 众所周知,人生是一个漫长的流程,不断 克服困难 ,不断反思前进的过程。在这

    2024年02月01日
    浏览(30)
  • Android修行手册-多路USB外接摄像头

    点击跳转=Unity3D特效百例 点击跳转=案例项目实战源码 点击跳转=游戏脚本-辅助自动化 点击跳转=Android控件全解手册 点击跳转=Scratch编程案例 点击跳转=软考全系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、工具、素材、源码、游戏等) 有什么需要欢

    2024年02月07日
    浏览(40)
  • Android修行手册 - 文档插件Aspose的jar包去除所有限制学习版

    专栏分享 点击跳转=Unity3D特效百例 点击跳转=案例项目实战源码 点击跳转=游戏脚本-辅助自动化 点击跳转=Android控件全解手册 点击跳转=Scratch编程案例 众所周知,人生是一个漫长的流程,不断 克服困难 ,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考

    2024年02月13日
    浏览(27)
  • poi实现excel文件导入导出(基本数据导出、含格式导出、含批注导出、含图片图表导出)——springboot

    本文主要是介绍springboot + poi实现基本的excel文件导入导出,包含数据导出导入时数据的其他需求校验,导出含有批注信息、导出含有图片信息、导出含有图表信息等的介绍等等,主要是一个demo尽可能简单明了的来介绍相关功能即可。有什么问题可以在留言哦!并在文章末尾附

    2024年02月08日
    浏览(65)
  • Python操作excel进行插入、删除行操作实例演示,利用xlwings库实现

    插入行演示采用正序遍历操作,直接使用 xlwings 提供的 sheet.api.Rows(\\\"行数\\\").Insert() 方法就能实现整行插入处理。 需要注意的是 ,如果是前插入,要避免再次检测到刚才匹配过的内容,以防循环反复插入原位置。 调整前: 处理过程: 调整后: 删除行演示采用逆序遍历操作,

    2023年04月08日
    浏览(24)
  • python 利用word中占位符号实现按word指定位置插入图片

    from docx import Document from docx.shared import Inches from docx.oxml.ns import qn from docx.enum.text import WD_ALIGN_PARAGRAPH def center_insert_img(doc, img):     \\\"\\\"\\\"插入图片\\\"\\\"\\\"     for paragraph in doc.paragraphs:         # 根据文档中的占位符定位图片插入的位置         if \\\'img1\\\' in paragraph.text:             # 把占

    2024年02月11日
    浏览(29)
  • 使用poi-tl向word插入图片、文本、表格行循环

    工作中难免会向word中操作数据,本文主要介绍poi-tl的使用,先来看效果图 核心介绍: 标签 1、插入文本标签 : {{var}} 2、插入图片标签: {{@var}} 操作步骤: 1、引入依赖 2、Java核心代码 官方网址:http://deepoove.com/poi-tl/ 1、准备模版,定义好需要的标签 2、查询模版 3、获取需要填

    2024年02月05日
    浏览(87)
  • Java利用POI导入Excel数据(多个sheet、模板)

    需求:根据excel模板导入数据            sheet1:1-6行为固定格式,且需要取值({xxx});7行开始为数据集合(list)            sheet2:都为固定格式,取值地方:{xxx}         1、数据格式(两个Sheet)   2、代码

    2024年02月16日
    浏览(33)
  • Java 通过POI快速导入带图片的excel并且图片不会丢失

    导入带图片的excel,这里也是研究了很久,在之前的博客中也有说明过,在项目使用过程中,发现很多时候 导入响应很慢 ,而且每次导入 图片都会丢失 几张,所以又花了点时间研究修改了下,具体如下: 这边在导入时,通过自定义注解,将excel读取到的数据转换到需要的实

    2024年02月01日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包