广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python xlwings如何插入Excel图片
  • 115
分享到

Python xlwings如何插入Excel图片

2023-06-06 13:06:32 115人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

小编给大家分享一下python xlwings如何插入excel图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!测试图片一、相对路径(报错)使用相对路径插入会报

小编给大家分享一下python xlwings如何插入excel图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

测试图片

Python xlwings如何插入Excel图片

一、相对路径(报错)

使用相对路径插入会报错(确认路径正确无误)

import xlwings as xwwb = xw.Book()sht = wb.sheets['Sheet1']sht.pictures.add('1.jpg') # 使用相对路径会报错wb.save('test.xlsx')wb.close()

File "<COMObject <unknown>>", line 5, in AddPicture
pywintypes.com_error: (-2147352567, '发生意外。', (0, None, '未找到指定文件。', None, 0, -2146827284), None)

二、绝对路径

改为绝对路径即可成功插入

import osimport xlwings as xwwb = xw.Book()sht = wb.sheets['Sheet1']# sht.pictures.add('1.jpg') # 使用相对路径会报错sht.pictures.add(os.path.join(os.getcwd(), '1.jpg'))wb.save('test.xlsx')wb.close()

Python xlwings如何插入Excel图片

三、指定位置和大小

函数原型add(image, link_to_file=False, save_with_document=True, left=0, top=0, width=None, height=None, name=None, update=False)

import osimport xlwings as xwwb = xw.Book()sht = wb.sheets['Sheet1']fileName = os.path.join(os.getcwd(), '1.jpg')sht.pictures.add(fileName, left=sht.range('B5').left, top=sht.range('B5').top, width=100, height=100)wb.save('test.xlsx')wb.close()

指定图片位置为B5单元格的左上角,图片像素为100×100

Python xlwings如何插入Excel图片

四、居中插入

新建Excel文件test.xlsx,设置列宽20行高100

Python xlwings如何插入Excel图片

import osimport xlwings as xwwb = xw.Book('test.xlsx') # 打开已存在的Excel文件sht = wb.sheets['Sheet1']rng = sht.range('B2') # 目标单元格fileName = os.path.join(os.getcwd(), '1.jpg')width, height = 80, 80 # 指定图片大小left = rng.left + (rng.width - width) / 2 # 居中top = rng.top + (rng.height - height) / 2sht.pictures.add(fileName, left=left, top=top, width=width, height=height)wb.save()wb.close()

Python xlwings如何插入Excel图片

智能居中插入

1.jpg

宽 × 高 = 188 × 282

Python xlwings如何插入Excel图片

2.jpg

宽 × 高 = 200 × 153

Python xlwings如何插入Excel图片

import osimport xlwings as xwfrom PIL import Imagedef add_center(sht, target, filePath, match=False, width=None, height=None, column_width=None, row_height=None):  '''Excel智能居中插入图片  优先级:match > width & height > column_width & row_height  建议使用column_width或row_height,定义单元格最大宽或高  :param sht: 工作表  :param target: 目标单元格,字符串,如'A1'  :param filePath: 图片绝对路径  :param width: 图片宽度  :param height: 图片高度  :param column_width: 单元格最大宽度,默认100像素,0 <= column_width <= 1557.285  :param row_height: 单元格最大高度,默认75像素,0 <= row_height <= 409.5  :param match: 绝对匹配原图宽高,最大宽度1557.285,最大高度409.5  '''  unit_width = 6.107 # Excel默认列宽与像素的比  rng = sht.range(target) # 目标单元格  name = os.path.basename(filePath) # 文件名  _width, _height = Image.open(filePath).size # 原图片宽高  NOT_SET = True # 未设置单元格宽高  # match  if match: # 绝对匹配图像    width, height = _width, _height  else: # 不绝对匹配图像    # width & height    if width or height:      if not height: # 指定了宽,等比计算高        height = width / _width * _height      if not width: # 指定了高,等比计算宽        width = height / _height * _width    else:      # column_width & row_height      if column_width and row_height: # 同时指定单元格最大宽高        width = row_height / _height * _width # 根据单元格最大高度假设宽        height = column_width / _width * _height # 根据单元格最大宽度假设高        area_width = column_width * height # 假设宽优先的面积        area_height = row_height * width # 假设高优先的面积        if area_width > area_height:          width = column_width        else:          height = row_height      elif not column_width and not row_height: # 均无指定单元格最大宽高        column_width = 100        row_height = 75        rng.column_width = column_width / unit_width # 更新当前宽度        rng.row_height = row_height # 更新当前高度        NOT_SET = False        width = row_height / _height * _width # 根据单元格最大高度假设宽        height = column_width / _width * _height # 根据单元格最大宽度假设高        area_width = column_width * height # 假设宽优先的面积        area_height = row_height * width # 假设高优先的面积        if area_width > area_height:          height = row_height        else:          width = column_width      else:        width = row_height / _height * _width if row_height else column_width # 仅设了单元格最大宽度        height = column_width / _width * _height if column_width else row_height # 仅设了单元格最大高度  assert 0 <= width / unit_width <= 255  assert 0 <= height <= 409.5  if NOT_SET:    rng.column_width = width / unit_width # 更新当前宽度    rng.row_height = height # 更新当前高度  left = rng.left + (rng.width - width) / 2 # 居中  top = rng.top + (rng.height - height) / 2  try:    sht.pictures.add(filePath, left=left, top=top, width=width, height=height, scale=None, name=name)  except Exception: # 已有同名图片,采用默认命名    passif __name__ == '__main__':  wb = xw.Book()  sht = wb.sheets['Sheet1']  filePath = os.path.join(os.getcwd(), '1.jpg')  filePath3 = os.path.join(os.getcwd(), '2.jpg')  add_center(sht, 'A1', filePath) # 默认值  add_center(sht, 'B2', filePath3) # 默认值  add_center(sht, 'C3', filePath, match=True) # 绝对匹配图片宽高  add_center(sht, 'D4', filePath, width=100) # 图片宽度为100像素  add_center(sht, 'E5', filePath, height=100) # 图片高度为100像素  add_center(sht, 'F6', filePath, width=100, height=100) # 图片高度为100像素  add_center(sht, 'G7', filePath, column_width=100) # 单元格最大宽度为100像素  add_center(sht, 'H8', filePath, row_height=100) # 单元格最大宽度为100像素  add_center(sht, 'I9', filePath, column_width=100, row_height=100) # 单元格最大高度或宽度为100像素

效果

Python xlwings如何插入Excel图片

unit_width = 6.107 # Excel默认列宽与像素的比

这个值估计与不同机器、分辨率有关,在5.7-6.2之间

遇到的坑

报错 pywintypes.com_error: (-2147352567, '发生意外。', (0, None, '未找到指定文件。', None, 0, -2146827284), None)
对路径使用os.path.abspath()

以上是“Python xlwings如何插入Excel图片”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网Python频道!

--结束END--

本文标题: Python xlwings如何插入Excel图片

本文链接: https://www.lsjlt.com/news/247312.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python xlwings如何插入Excel图片
    小编给大家分享一下Python xlwings如何插入Excel图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!测试图片一、相对路径(报错)使用相对路径插入会报...
    99+
    2023-06-06
  • HTML如何插入图片
    这篇文章主要为大家展示了“HTML如何插入图片”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML如何插入图片”这篇文章吧。在开发网页时,我们免不了要插入图片,以增强用户体验感。那么,在 HT...
    99+
    2023-06-27
  • html图片如何插入
    这篇文章主要介绍html图片如何插入,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,适合初学前端开发者使用。2、可扩展性:超级文本标...
    99+
    2023-06-14
  • 如何在python中使用xlwings库读写excel
    如何在python中使用xlwings库读写excel?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、xlwings 中的逻辑:应用->工作簿->工作表->...
    99+
    2023-06-06
  • 如何在html中插入图片
    这期内容当中小编将会给大家带来有关如何在html中插入图片,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,适合初学前端开...
    99+
    2023-06-14
  • python如何读取文件夹中图片的图片名并写入excel表格
    本篇文章为大家展示了python如何读取文件夹中图片的图片名并写入excel表格,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。有的时候,我们需要读取图片名,写入表格中,以便结合图片的其他信息,做进一...
    99+
    2023-06-21
  • Python如何实现向PPT中插入表格与图片
    这篇文章主要介绍“Python如何实现向PPT中插入表格与图片”,在日常操作中,相信很多人在Python如何实现向PPT中插入表格与图片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何实现向PP...
    99+
    2023-06-30
  • python读取文件夹中图片的图片名并写入excel表格
    有的时候,我们需要读取图片名,写入表格中,以便结合图片的其他信息,做进一步的分析。 假如,现在要读取存放在E盘的origin_file文件夹,读取里面的图片名将其写入到excel文件...
    99+
    2022-11-12
  • python实现pptx批量向PPT中插入图片
    目录项目背景基础加亿点点细节最终代码项目结果图总结项目背景 实验结果拍摄了一组图片,数量较大,想要按顺序组合排版,比较简单的方式是在PPT中插入图片进行排版。但是PPT批量插入图片后...
    99+
    2022-11-13
  • python怎么实现pptx批量向PPT中插入图片
    这篇“python怎么实现pptx批量向PPT中插入图片”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python怎么实现p...
    99+
    2023-06-29
  • excel图片透明度如何调节
    本篇内容介绍了“excel图片透明度如何调节”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!excel图片透明度调节的方法:第一步,点击“插入...
    99+
    2023-07-02
  • 数据库中如何插入修改图片BLOB字段
    插入示例 1.     利用存储过程进行插入数据 -- 创建存储图片的表 CREATE TABLE IMAGE_LOB ( T_ID VARCHAR2 ...
    99+
    2022-10-18
  • 【Flutter】Flutter 图片选择器入门:如何使用 image_picker 插件从图库选择图片、拍摄新照片
    文章目录 一、 前言二、 Flutter 和 image_picker 插件简介三、 安装和配置 image_picker 插件四、 使用 image_picker 从图库选择图片五、 使用 ...
    99+
    2023-09-16
    flutter android ios 原力计划
  • excel图表如何嵌入表格
    要将Excel图表嵌入到表格中,可以按照以下步骤操作:1. 打开Excel文档并选择要插入图表的工作表。2. 选中要插入图表的数据,...
    99+
    2023-09-29
    excel
  • 如何利用python将Matplotlib可视化插入到Excel表格中
    这篇文章主要讲解了“如何利用python将Matplotlib可视化插入到Excel表格中”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用python将Matplotlib可视化插入到...
    99+
    2023-07-02
  • html如何导入图片
    这篇文章将为大家详细讲解有关html如何导入图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。html导入图片的方法:首先新建html文件,在body标签中插入img标签;然后给标签添加“src”属性,属...
    99+
    2023-06-06
  • android如何导入图片
    在Android中,可以使用以下步骤来导入图片:1. 在项目的`res`文件夹中创建一个新的文件夹,例如`drawable`,用于存...
    99+
    2023-09-16
    android
  • axuer如何导入图片
    这篇文章主要介绍“axuer如何导入图片”,在日常操作中,相信很多人在axuer如何导入图片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”axuer如何导入图片”的疑惑有所帮...
    99+
    2023-04-07
    axuer
  • 如何用Python中19行代码把照片写入到Excel中
    目录1、前言2、代码实战2.1思路2.2文件准备2.3实战2.4色值转换2.5图片转换2.6代码整合2.7运行结果3、总结1、前言 这里说的,不是截取一张图片,粘贴到excel;而是...
    99+
    2022-11-13
  • ps如何把图片嵌入另一张图片
    这篇文章主要介绍了ps如何把图片嵌入另一张图片的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ps如何把图片嵌入另一张图片文章都会有所收获,下面我们一起来看看吧。ps把图片嵌入另一张图片:首先打开ps,然后新建一...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作