大家好,我是小五????

关于自动化办公,之前我思考过好久。到底什么是自动化办公,哪些属于能真正提高我们工作效率的知识,哪些所谓的python自动化办公项目又是伪需求?

其实挺难断定的,可能大部分人用不到的一个功能,对于刚需的人却是救命稻草!

比如今天的这个需求????

案例需求

一个群友在交流群里提出了这样一个问题

这是他给出的示例文件,其中F列的商品编码,G列是商品图片。希望能够将G列的图片提取出来,并以同行的F列商品编码命名。

下面给大家讲讲,如何轻松提取Excel的图片????

最简单的解决办法

其中最简单的办法就是:将原Excel文件后缀名改为压缩包格式(zip、rar等)

这时候只需要解压此压缩包,再依次打开【xl】→【media】文件夹,就可以看到一堆图片。

这些图片就是原本Excel中插入的图片。

是不是很简单?网上python自动化提取Excel中图片的方法,其基本原理也是一样的。

所以大家如果遇到了这种需求,不妨先试试这种方法(包括在Word中提取图片也是同理)

但是这种解决办法在本案例中并不适用。

为什么呢?

整个Excel中有重复的图片,这就会导致压缩包解压后的图片会自动去重,这样我们就没办法给图片匹配命名。

一共126行商品数据,但解压后只提取出了112张图片。

下面继续带大家尝试用不同办法解决这个问题????

VBA 方法

有群友给出了VBA的解法:

先看实现的效果动图

这里公布VBA代码,刚兴趣的同学可以自己学习研究一下

Sub 导出图片()On Error Resume NextMkDir ThisWorkbook.Path & "\图片"For Each pic In ActiveSheet.ShapesIf pic.Type = 13 ThenRN = pic.TopLeftCell.Offset(0, -1).Valuepic.CopyWith ActiveSheet.ChartObjects.Add(0, 0, pic.Width, pic.Height).Chart    '创建图片.Parent.Select.Paste.Export ThisWorkbook.Path & "\图片\" & RN & ".jpg".Parent.DeleteEnd WithEnd IfNext
End Sub

既然VBA能实现,那自动化办公的另一个巨头——python哥也不能说不行啊。

Python方法

我们可以使用openpyxl来自动提取Excel中的数值,但是对于单元格里的图片就束手无策了。

毕竟它是浮动的。

这里我们需要再安装一个库——openpyxl-image-loader来搭配使用。顾名思义,它的功能就是从单元格获取图像,正好可以实现我们的需求。

表情包(真不错)

具体实现语句如下所示:

path = r'D:\python_code\\'
saveDir = "图片/"wb = load_workbook(path + '待收集图片sku.xlsx')
ws = wb['Sheet1']
image_loader = SheetImageLoader(ws)num = ws.max_row
for i in range(2,num+1):name = ws['F'+str(i)].valueimage = image_loader.get('G'+str(i))image.save(saveDir + name + ".png")

其中image_loader.get()函数就是用来获取单元格的图像,我们只需再将openpyxl获取的F列商品编号作为图片名保存即可。

运行后的结果

可以看到,标注圈出的图片原本是相同的,但仍然被命名为对应的商品编号,这样我们最终提取并命名的图片也就是126张。

说明我们同样解决了这个需求!

所以无论VBA还是python,只要能真正解决我们实际问题的,都是自动化办公的好帮手

数据&代码下载

如果有小伙伴对本文的操作感兴趣,扫码????关注「快学Python」在后台回复“图片” ,即可获取全部案例数据和代码!

精通Python自动化编程》全书共20章,第1~14章讲解Python编程基础知识,第15章介绍数据库、ORM框架SQLAlchemy的应用,第16~20章分别介绍Selenium实现网页自动化、Requests实现网页爬虫编程、办公自动化编程、OpenCV实现图像识别与定位、Web系统的开发与部署。点击下图可看详情/购买!????

感谢机械工业出版社的支持!点击阅读原文 500币????免费兑换!无套路包邮送书!

自动化办公 | 快速从Excel中提取图片并匹配命名相关推荐

  1. 如何按指定名称快速导出Excel中的图片?

    照例举个例子.如下图所示,工作表中存在多张图片,现在需要将其导出,并按图片向左偏移一个单元格,也就是A列单元格的值进行命名. 导出后结果如下图所示: 如果不追求规范图片命名,只是导出Excel中的图片 ...

  2. Python 批量提取Excel中的图片,图片文件名按指定列存储

    openpyxl 以及 openpyxl_image_loader,conda或者pip无法安装的话,官网下载whl,然后pip安装本地包 [注意]:图片必须在单元格内,不能压过单元格边界 from ...

  3. 怎么从pdf中提取图片?三招告诉你如何从pdf中提取图片

    众所周知,PDF的格式对于一些重要文件的保存,以及隐私文件的保护来说都是非常好用的.同时,如果要将PDF格式的文件转换成其它格式的文件也挺方便的.因此,PDF格式在日常办公中具有较高的使用率.那么我们 ...

  4. vb.net读取excel并写入dgv_如何用Python读取Excel中的图片?然后写入图片?

    大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进行分析. 那么你知道如何使用Python读 ...

  5. 如何用Python读取Excel中图片?又如何用Python往Excel中写入图片?

    大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进行分析. 那么你知道如何使用Python读 ...

  6. 从视频中提取图片(截取ppt)

    从视频中提取图片 大聪明2.0上线 本文将介绍如何快速从网课视频中提取ppt Step1 从视频中提取图片 使用win自带的"电影与电视" 点击这个小铅笔,选择"保存视频 ...

  7. 怎么从pdf中提取图片

    在办公室工作过程中,我们需要从PDF文件中获取对我们有用的图片. 但是打开PDF文件后,无法直接保存或复制图片.所以我们常用的方法是使用屏幕截图工具保存一两张图片. 如果有数百张图片,则估计头部会很大 ...

  8. excel poi 加背景图_java 在Excel中插入图片 POI实现

    一.POI简介 Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97- ...

  9. excel中提取月份_在Excel中自动添加月份表

    excel中提取月份 Set up a Master sheet in your workbook, and add month sheets automatically, based on that ...

最新文章

  1. c#chart背景透明_C# 二
  2. 内核对象用于线程同步
  3. matlab 提取数列里非零_什么!科研交流免费教Matlab?
  4. 一个老程序员对自己当前编程技术处在哪个水平的反思
  5. MIPI CSI-2学习
  6. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]43 为AES 对抗侧信道攻击的防御
  7. 湖首大学计算机科学硕士申请,湖首大学王牌专业之一丨计算机科学专业
  8. 捷作服务器 修改套接字端口,如何解决错误“每个套接字地址(协议/网络地址/端口)通常只允许使用一次”?...
  9. 没想到!谷歌排名第一的编程语言,这样的学的话,更容易成为高手!
  10. MySQL 用gourp by分组后取某一字段最大值
  11. python3--命名空间字典
  12. 凸优化第九章无约束优化 9.4最速下降方法
  13. 存用部首查字典如何查_存的部首,存的偏旁部首,存的拼音,存的笔画数,存的组词,存的意思...
  14. ITeye 2012年8月最后一周重要新闻回顾
  15. 读论文:Noise2Noise: Learning Image Restoration without Clean Data
  16. 珍大户 认知世界的经济学课程推荐电影《大空头》链接地址及笔记
  17. k-means算法与pca结合对多特征组聚类
  18. 如何在微信公众号分享PPT?
  19. 读《Effective java 中文版》(2)
  20. 音频之WAV格式编码解析

热门文章

  1. Intellij IDEA中使用git命令窗口
  2. CAD属性编辑操作——回退、重作
  3. zeppelin报错jdk版本低
  4. java幸运抽奖系统_java实现幸运抽奖系统
  5. html斜线背景,PS斜线底纹如何制作?
  6. TJA1044---具有待机模式的高速CAN收发器
  7. 语音识别技术基础理解
  8. 【方向盘】启动命令和IDEA如何传递:VM参数、命令行参数、系统参数、环境变量参数、main方法参数
  9. 如何重新设置苹果id密码_苹果怎么重新设置id账号和密码
  10. S2Snet:利用纳米孔进行低分子量RNA鉴定的深度学习