在上篇推文《操作Excel的Xlwings教程(四)》中重点介绍了Xlwings中的Shape和Chart等API知识点。本次推文将继续上次的知识点,将继续介绍Xlwings中其他API相关的知识,并展示一些小例子,让大家可以跟着教程进行学习:

一、Pictures

图片类的操作在Excel中是非常常见的,那么在Xlwings中对图片的操作有哪些常用的方法和属性呢?接下来我将介绍其中的一些常用的操作,假设我们现在有一个文件1.xlsx,其sheet页的有两张图片:

我们来看一些代码:

import xlwings as xw
wb = xw.Book('1.xlsx')
wb.sheets[0].pictures         # 查看引用的sheet页中图片的对象
wb.sheets[0].pictures.count   # 统计引用的sheet页中图片对象的数量,次数输出2

那么我们如何增加新的图片呢,我们可以这样进行操作:

wb.sheets[0].pictures.add(r'C:\Users\LEGION\Desktop\1.jpg')

当然了增加的图片会有默认的位置,具体的位置大家一试便知,值的说明的是这个add()方法它有几个参数,总结如下:

image

文件路径或Matplotlib图形对象。

left

以磅为单位距离左侧边缘的位置,默认为0。

top

以磅为单位距离上侧边缘的位置,默认为0。

width

设置图宽。

height

设置图高。

name

Excel图片名称。如果未提供,则默认为Excel标准名称,例如“图片1”。

update

替换更新图片。

scale

缩放尺度。

值的一提的是,Xlwings支持对Matpoltlib对象的操作,那么在Xlwings中怎么插入Matplotlib的图像呢?

import matplotlib.pyplot as plt
import numpy as np
x = [-4,-3,-2,-1,0,1,2,3,4]
figure = plt.figure()
plt.plot(np.cos(x)/2,np.sin(x)/3)
wb.sheets[0].pictures.add(figure, name='sin#cos', update=True)

当然,可同样使用上述介绍的参数对图片的位置和大小进行调整。

二、Picture 

老话:picture对象是pictures集合的成员

方法和属性:

wb.sheets[0].pictures[0]            #引用图片,或者wb.sheets[0].charts['PictureName']
wb.sheets[0].pictures[0].delete()   # 删除图片
wb.sheets[0].pictures[0].height     # 返回或设置代表图片高度
wb.sheets[0].pictures[0].left       # 返回或设置图片水平位置
wb.sheets[0].pictures[0].width      # 返回或设置图片宽度。
wb.sheets[0].pictures[0].top        # 返回或设置图片垂直位置。
wb.sheets[0].pictures[0].name       #返回或设置图片的名称。
wb.sheets[0].pictures[0].parent     # 返回图片的父级,输出<Sheet[1.xlsx]Sheet1>
wb.sheets[0].pictures[0].update('图片路径')    #用新图片替换现有图片

以上就是picture对象的相关方法,注意在使用这些方法的时候一定要引用正确的sheet页的picture,不要引用错对象。

前几篇推文和今天介绍的picture就是Xlwings中常见的一些对象知识了。

三、题外分析

有人有可能有这样的一个疑问,Excel的VBA和Xlwings在处理数据方面速度是怎样的呢?这里不在进行写代码的方式来说明,我们来分析一下看看,以便分析一下VBA的在这方面的优势和不足,假设我们现在要计算上十万行Excel文件,操作其中两列数据的和:

方法1:使用Xlwings读Range的数据进行操作,显然这种方式要使用for循环反复的引用range对象,使得在计算的过程中这是非常耗时的。

方法2:使用Xlwings将数据一次性读入python的List中,在List中进行计算返回结果,这样的操作方式避免了大量引用range对象,减少了耗时,当然了数量量很大的时候也就对设备的内存提出了新的要求。

方法3:使用VBA进行操作。VBA是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。跟使用使用第三方库不一样的是,VBA操作的时候是基于更加底层的接口来实现的,所以从这个角度来看,这种方式是肯定比方法1快的。

方法4:当然了,我们知道xlwings是支持pandas的对象的,因此我们也可以使用pandas来进行处理,毕竟pandas是处理数据的神器,而且pandas处理大量的数据也有其独有的优势,这是值得我们注意的。

不管哪种方式,都是解决问题的方式,都值得我们在平时的学习中进行总结和归纳,感兴趣的小伙伴可以生成数据实时这几种方式到底哪种更优哦。

Python操作Excel的Xlwings教程(五)相关推荐

  1. Python操作Excel的Xlwings教程(二)

    在上篇推文<操作Excel的Xlwings教程(一)>中介绍了Python 中操作Excel的一些模块,重点介绍了Xlwings的一些基本操作. 本次推文将继续上次的知识点,将介绍Xlwi ...

  2. python菜鸟excel教程-Python操作Excel的Xlwings教程(一)

    在日常的工作中,我们或多或少的都要和Excel打交道.甚至在一些领域,某一些业务人员的主要工作就是处理Excel表格,处理大量的Excel数据并生成一系列的报表.对于程序员朋友们来说,更喜欢以代码的形 ...

  3. Python操作Excel的Xlwings教程(八)——Excel使用VBA调用Python

    这次推文的主题,在Xlwings中使用VBA的宏来进行Excel的操作. 知识准备 在Xlwings的官方文档中,我寻找到了一个关于Python API的东西.传送门如下: https://docs. ...

  4. wxpython处理excel_Python操作Excel的Xlwings教程(二)

    在上篇文章<操作Excel的Xlwings教程(一)>中介绍了Python 中操作Excel的一些模块,重点介绍了Xlwings的一些基本操作. 本次文章将继续上次的知识点,将介绍Xlwi ...

  5. python excel库pip install_超全整理|Python 操作 Excel 库 xlwings 常用操作详解!

    原标题:超全整理|Python 操作 Excel 库 xlwings 常用操作详解! 来源:早起Python 作者:陈熹.刘早起 大家好,我是早起. 在之前的文章中我们曾详细的讲解了如何使用openp ...

  6. python操作Excel,xlwings排序

    python操作Excel,xlwings排序. 前几天因为业务需求,要在python里面给excel排序,然后在网上找的方法是这样的 排序使用方法: 1.选择需要排序的区域.这里用 'a2' 是因为 ...

  7. 干货 | 超全整理|Python 操作 Excel 库 xlwings 常用操作详解!

    在Python中还有其他可以直接操作 Excel 文件的库,如 xlwings.xlrd.xlwt 等等,本文就将讲解另一个优秀的库xlwings 开头还是想说一下,各个库之间没有明确的好坏之分,每个 ...

  8. 超全整理|Python 操作 Excel 库 xlwings 常用操作详解!

    在之前的文章中我们曾详细的讲解了如何使用openpyxl 操作Excel,其实在Python中还有其他可以直接操作 Excel 文件的库,如 xlwings.xlrd.xlwt 等等,本文就将讲解另一 ...

  9. python excel 库 知乎_超全整理|Python 操作 Excel 库 xlwings 常用操作详解!

    来源:早起Python 作者:陈熹.刘早起 大家好,我是早起. 在之前的文章中我们曾详细的讲解了如何使用openpyxl 操作Excel,其实在Python中还有其他可以直接操作 Excel 文件的库 ...

最新文章

  1. PDF搜索、转换与处理类网站
  2. 《混合云计算》——2.2 结合服务创建混合云环境
  3. linux下配置samba服务器(以CentOS6.7为例)
  4. sqllite查询数据量_详解SQLite中的查询规划器
  5. python 图形化开发用什么模块_用python进行GUI开发的选择/python的GUI模块(图形界面开发库)...
  6. 重新理解管理信息化促进企业变革
  7. 【ML】线性分类器和非线性分类器的区别
  8. python将红底证件照转成蓝底
  9. SubmitButton
  10. C语言数组相似度比对,C语言实验报告:碱基相似度比较
  11. 拯救脆弱的智慧城市:不但要“智商” 还得有“生气”
  12. 服务器站群16c多少个ip?不同C段IP怎么计算
  13. 禅与摩托车维修艺术 摘选
  14. 第十一天 乐在其中-Android与远端之JDBC
  15. 计算机科学的四大领域,计算机科学CS四大名校解析
  16. 心电图心跳信号多分类预测-建模调参(四)
  17. VM安装CentOS虚拟机详细教程
  18. 人工神经网络是符号主义,神经网络的符号表达式
  19. swf文件提取音频文件方法
  20. 初中计算机教案十进制转二进制,二进制与十进制转换(教案).doc

热门文章

  1. python安装selenium教程
  2. 屏幕适配,彻底理解dp,dpi,屏幕密度,分辨率之间的爱恨纠葛
  3. 应用回归分析第五版电子书_应用回归分析(第5版)
  4. jca.jar_JCA 1.5,第1部分,优化和生命周期管理
  5. 顶刊TPAMI 2022!清华刘玉身团队提出SPD:雪花反卷积网络
  6. Android集成Facebook第三方登录,全流程
  7. HTML5 2D游戏引擎研发系列 第一章
  8. Autonomous Navigation of an Ultrasound Probe Towards Standard Scan Planes with Deep Reinforcement Le
  9. 【Linux用户管理】
  10. js-计算已经过了元旦多少天