系统:Windows 7
语言版本:Anaconda3-4.3.0.1-Windows-x86_64
编辑器:pycharm-community-2016.3.2
- 这个系列讲讲Python对Excel的操作
- 今天讲讲win32com模块对已有Excel文件的操作:在特定位置插入特定大小的图片
Part 1:示例说明
- 示例工作表,A1:E10区域插入图片
插入图片前
插入图片后
Part 2:代码
import os
import win32com
from win32com.client import constants as c # 旨在直接使用VBA常数
current_address = os.path.abspath('.')
excel_address = os.path.join(current_address, "插入图片.xlsx")
xl_app = win32com.client.gencache.EnsureDispatch("Excel.Application") # 若想引用常数的话使用此法调用Excel
xl_app.Visible = False # 是否显示Excel文件
wb = xl_app.Workbooks.Open(excel_address)
sht = wb.Worksheets(1)
sht.Name = "示例"
photo_address = os.path.join(current_address, "1.png")
print(photo_address)
if os.path.exists(photo_address):
picture_left = sht.Cells(1, 1).Left
picture_top = sht.Cells(1, 1).Top
picture_width = sht.Cells(1, 1).Width * 5
picture_height = sht.Cells(1, 1).Height * 10
sht.Shapes.AddPicture(photo_address, 1, 1, picture_left, picture_top, picture_width, picture_height)
wb.Save()
wb.Close()
代码截图
Part 3:部分代码解读
-
os.path.exists(photo_address)
,判断文件是否存在 -
sht.Shapes.AddPicture(photo_address, 1, 1, picture_left, picture_top, picture_width, picture_height)
,插入图片,以单元格左上角为定位- 若想图片效果比较好,那么这一区域单元格的行是一致的,宽也是一致的
- 关于每个参数的含义,请参考VBA官方解释
本文为原创作品,欢迎分享朋友圈
常按图片识别二维码,关注本公众号
Python 优雅 帅气