python 批量将图片存入excel单元格内

news/2024/7/21 6:36:51 标签: python, excel

python 批量将图片存入excel单元格

  • 示例代码1
  • 示例代码2

示例代码1

https://blog.csdn.net/wuyoudeyuer/article/details/128185284

python"># -*- coding: utf-8 -*-
# @Time   : 2022-12-05
# @Author : Carl_DJ

'''
实现功能:
    在excel中,对应的名称后面,插入图片

'''

import openpyxl,PIL
from openpyxl.drawing.image import Image
import os

#excel文件路径
excel_path = './pic/image.xlsx'

#图片名称为A列
img_name_column = 'A'

#图片写入B列
img_column = 'B'
#读取图片的地址
img_path = './data/picture'

#转换图片格式,强制转换成jpg格式
# img_type = PIL.Image.open(img_path).convert("RGB")
# img_type.save(img_path, 'jpeg')

#打开excel文件
wb = openpyxl.load_workbook(excel_path)
#获取sheet页
ws = wb.active

for i, v in enumerate(ws[img_name_column], start=1):
    #图片路径
    img_file_path = os.path.join(img_path, f"{v.value}.jpg")
    #获取图片
    img = Image(img_file_path)
    #设置图片的大小
    img.width, img.height = (110, 110)
    # 设置表格的宽20和高85
    ws.column_dimensions[img_column].width = 20
    ws.row_dimensions[i].height = 85
    # 图片插入名称对应单元格
    ws.add_image(img, anchor=img_column + str(i))

#保存
wb.save(excel_path)  # 保存
#关闭
wb.close()
print(f'保存完成')

示例代码2

以下是一个示例程序,可以实现将指定目录下的所有图片存储到Excel单元格内。注意需要安装openpyxl库和Pillow库。

python">import os
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
from openpyxl.drawing.image import Image

# 设定目录和Excel工作簿名称
directory = "path/to/images/"
workbook_name = "images.xlsx"

# 创建新工作簿
wb = Workbook()
sheet = wb.active

# 遍历目录下的所有图片文件
for i, filename in enumerate(os.listdir(directory)):
    if filename.endswith(".jpg") or filename.endswith(".png"):
        # 打开图片并将其存储到Excel单元格中
        img = Image(directory + filename)
        sheet.add_image(img, f'A{i + 1}')

# 调整单元格大小以适应图片
for column_cells in sheet.columns:
    length = max(len(str(cell.value)) for cell in column_cells)
    sheet.column_dimensions[get_column_letter(column_cells[0].column)].width = length

# 保存工作簿
wb.save(workbook_name)

以上代码会将指定目录下所有的.jpg或.png文件存储到Excel单元格中,并将单元格大小调整为适应图片大小。需要注意的是,如果目录下有其他类型的文件,程序会抛出异常并停止运行。可以根据实际情况调整程序逻辑和异常处理方式。


http://www.niftyadmin.cn/n/5213024.html

相关文章

LeetCode算法题解(动态规划)|LeetCode139. 单词拆分

LeetCode139. 单词拆分 题目链接:139. 单词拆分 题目描述: 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单…

2023 年 认证杯 小美赛 ABC题 国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 cs数模团队在认证杯 小美赛前为大家提供了许多资料的内容呀&am…

qt5.15.2及6.0以上版本安装

文章目录 下载在线安装器安装打开软件 下载在线安装器 因为从qt5.15开始不支持离线下载安装了,只能通过在线安装的方式进行安装。 下载在线安装下载器: 这个在线安装下载器网上也都是可以找到。 这里是其放到网盘上的下载地址: 链接&#x…

crontab 定时检测 Tomcat 状态脚本实现及注意事项

背景 Jenkins 所在的 Tomcat 总是莫名挂掉,虽然任务配置了 NOKILLME 参数,而且并不是总是发生在编译完成后才挂的。怀疑是机器资源不足导致的,没有依据。最简单的办法是创建一个定时任务,检测 Tomcat 状态,不见了就拉…

设计测试用例的具体方法总结

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️白马沉河共歃誓,怒涛没城亦不悔 ☁️基于需求进行测试用例的设计 基…

linux开启apache服务

vim /etc/apache2/ports.conf 键盘输入i 进入插入编辑模式,修改apache2默认监听端口号为8080 ,编辑好后,按Esc键“:wq!” 保存退出。(注:端口也可以不修改) 在终端输入“/etc/init.d/apache2 …

二十三种设计模式全面解析-深入探讨状态模式的高级应用技术:释放对象行为的无限可能

在软件开发中,状态管理是一个常见的挑战。当对象的行为随着内部状态的变化而变化时,有效地管理对象的状态和相应的行为变得至关重要。在这方面,状态模式提供了一种优雅而灵活的解决方案。它允许对象在运行时根据内部状态的改变而改变其行为&a…

Flash Attention:高效注意力机制的突破与应用

注意力机制彻底改变了自然语言处理和深度学习领域。它们允许模型在执行机器翻译、语言生成等任务时专注于输入数据的相关部分。 在这篇博客[1]中,我们将深入研究被称为“Flash Attention”的注意力机制的突破性进展。我们将探讨它是什么、它是如何工作的&#xff0c…