iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python怎么读取excel中的图片功能
  • 684
分享到

Python怎么读取excel中的图片功能

2023-06-29 01:06:48 684人浏览 泡泡鱼

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

摘要

这篇文章主要介绍“python怎么读取excel中的图片功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么读取excel中的图片功能”文章能帮助大家解决问题。一、读取excel文件我

这篇文章主要介绍“python怎么读取excel中的图片功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么读取excel中的图片功能”文章能帮助大家解决问题。

    一、读取excel文件

    我们先来看看如何读取excel文件,读取excel文件的方式很多。这里选择openpyxl模块,安装语句如下:

    pip install openpyxl

    我们还需要用到一些其它模块,具体如下:

    pip install pyzbarpip install pillowpip install numpy

    下面我们就可以开始操作了。

    在Excel中,有工作簿、表、单元等。这里简单说一下,工作簿就是一个excel文件,表的话就是我们excel左下角切换的sheet1、sheet2,单元就是一个格子。下面我们来读取一个excel文件:

    from openpyxl import load_workbook# 加载excelwb = load_workbook("111.xlsx")# 切换到第一张表ws = wb[wb.sheetnames[0]]# 获取A3单元cell = ws['A3']# 输出A3单元的值print(cell.value)

    二、读取excel中的图片

    读取excel中的图片有多种方式,本文会分享两种方式。

    (1)使用zipfile模块

    excel本身是一个压缩文件,我们把excel的后缀改成zip后,手动解压就会看到在xl/media目录下有一些图片文件,这些图片就是excel种插入的图片。因此我们就可以通过解压的方式读取excel种的图片,具体代码如下:

    import osfrom zipfile import ZipFile# 解压目录unzip_path = "./unzip"if not os.path.exists(unzip_path):    os.mkdir(unzip_path)with ZipFile("111.xlsx") as f:    for file in f.namelist():        # 解压图片部分的文件        if file.startswith("xl/media"):            f.extract(file, path=unzip_path)

    (2)使用openpyxl读取

    上面的操作可以获取excel中的图片,但是有个缺点。就是我们不知道哪个图片来自哪个单元,在有些情况下知道图片来自哪个单元是很有比较的。下面我们就来解决这个问题:

    from openpyxl import load_workbookwb = load_workbook("111.xlsx")ws = wb[wb.sheetnames[0]]# 遍历表中所有托for image in ws._images:    print(image)

    我们先读取了一个表,然后调用_images获取表中的所有图片。但是这个图片我们还不能操作,具体对图片的操作我们下一节再看。我们先看看怎么知道图片来自哪个单元,我们可以输出图片的anchor._from:

    from openpyxl import load_workbookwb = load_workbook("111.xlsx")ws = wb[wb.sheetnames[0]]for image in ws._images:    # 输出图片的位置信息    print(image.anchor._from)

    具体输入内容如下:

    <openpyxl.drawing.spreadsheet_drawing.AnchORMarker object>Parameters:col=0, colOff=1, row=0, rowOff=1

    其中col表示行号,row表示列号。根据这些信息,我们就可以知道图片的单元了。比如col=0,row=0,表示的应该是A1单元。如果col=1,row=1,表示的应该是B2单元。

    三、对读取的图片进行处理

    对图片处理的操作有很多,这里要看具体需要。这里我分享一下把excel中图片转换成pillow图片和ndarray对象的操作。转换后,我们就可以用numpy和pillow对图片进行各种操作。

    import numpy as npfrom PIL import Imagefrom openpyxl import load_workbookwb = load_workbook("111.xlsx")ws = wb[wb.sheetnames[0]]for image in ws._images:    # 将图片转换成Pillow中的图片对象    img = Image.open(image.ref).convert("RGB")    # 将Pillow中的图片对象转换成ndarray数组    img = np.array(img)

    如果我们excel中的图片是二维码,我们就可以进行下面的操作:

    import numpy as npfrom PIL import Imagefrom pyzbar import pyzbarfrom openpyxl import load_workbookwb = load_workbook("111.xlsx")ws = wb[wb.sheetnames[0]]for image in ws._images:    # 转换成容易操作的图片对象    img = Image.open(image.ref).convert("RGB")    img = np.array(img)        # 解析二维码    data = pyzbar.decode(img)    if data:        text = data[0].data.decode('utf-8')        print(text)    else:        print("未识别到内容")

    补充

    除了以上的方法,还可以通过以下操作实现:

    将待读取的excel文件后缀名改成zip,变成压缩文件。

    再解压这个文件。

    在解压后的文件夹中,就有excel中的图片。

    这样读excel中的图片,就变成了读文件夹中的图片了,和普通文件一样,可以做各种处理。

    具体实现代码

     ''' File Name:  readexcelimg Author:   tim Date:    2018/7/26 19:52 Description: 读取excel中的图片,打印图片路径   先将excel转换成zip包,解压zip包,包下面有文件夹存放了图片,读取这个图片 '''  import os import zipfile # 判断是否是文件和判断文件是否存在 def isfile_exist(file_path):   if not os.path.isfile(file_path):     print("It's not a file or no such file exist ! %s" % file_path)     return False   else:     return True # 修改指定目录下的文件类型名,将excel后缀名修改为.zip def change_file_name(file_path, new_type='.zip'):   if not isfile_exist(file_path):     return ''   extend = os.path.splitext(file_path)[1] # 获取文件拓展名   if extend != '.xlsx' and extend != '.xls':     print("It's not a excel file! %s" % file_path)     return False   file_name = os.path.basename(file_path) # 获取文件名   new_name = str(file_name.split('.')[0]) + new_type # 新的文件名,命名为:xxx.zip   dir_path = os.path.dirname(file_path) # 获取文件所在目录   new_path = os.path.join(dir_path, new_name) # 新的文件路径   if os.path.exists(new_path):     os.remove(new_path)   os.rename(file_path, new_path) # 保存新文件,旧文件会替换掉   return new_path # 返回新的文件路径,压缩包 # 解压文件 def unzip_file(zipfile_path):   if not isfile_exist(zipfile_path):     return False   if os.path.splitext(zipfile_path)[1] != '.zip':     print("It's not a zip file! %s" % zipfile_path)     return False   file_zip = zipfile.ZipFile(zipfile_path, 'r')   file_name = os.path.basename(zipfile_path) # 获取文件名   zipdir = os.path.join(os.path.dirname(zipfile_path), str(file_name.split('.')[0])) # 获取文件所在目录   for files in file_zip.namelist():     file_zip.extract(files, os.path.join(zipfile_path, zipdir)) # 解压到指定文件目录   file_zip.close()   return True # 读取解压后的文件夹,打印图片路径 def read_img(zipfile_path):   if not isfile_exist(zipfile_path):     return False   dir_path = os.path.dirname(zipfile_path) # 获取文件所在目录   file_name = os.path.basename(zipfile_path) # 获取文件名   pic_dir = 'xl' + os.sep + 'media' # excel变成压缩包后,再解压,图片在media目录   pic_path = os.path.join(dir_path, str(file_name.split('.')[0]), pic_dir)   file_list = os.listdir(pic_path)   for file in file_list:     filepath = os.path.join(pic_path, file)     print(filepath) # 组合各个函数 def compenent(excel_file_path):   zip_file_path = change_file_name(excel_file_path)   if zip_file_path != '':     if unzip_file(zip_file_path):       read_img(zip_file_path) # main if __name__ == '__main__':   compenent('/Users/Desktop/test/people.xlsx')

    关于“Python怎么读取excel中的图片功能”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

    --结束END--

    本文标题: Python怎么读取excel中的图片功能

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

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

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

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

    下载Word文档
    猜你喜欢
    • Python怎么读取excel中的图片功能
      这篇文章主要介绍“Python怎么读取excel中的图片功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么读取excel中的图片功能”文章能帮助大家解决问题。一、读取excel文件我...
      99+
      2023-06-29
    • Python实现读取excel中的图片功能
      目录一、读取excel文件二、读取excel中的图片(1)使用zipfile模块(2)使用openpyxl读取三、对读取的图片进行处理补充一、读取excel文件 我们先来看看如何读取...
      99+
      2024-04-02
    • Python中怎么读取Excel的图片
      这篇文章给大家介绍Python中怎么读取Excel的图片,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、准备由于此次包比较多,我们需要在命令行中使用pip进行安装pip install pillo...
      99+
      2023-06-15
    • python读取文件夹中图片的图片名并写入excel表格
      有的时候,我们需要读取图片名,写入表格中,以便结合图片的其他信息,做进一步的分析。 假如,现在要读取存放在E盘的origin_file文件夹,读取里面的图片名将其写入到excel文件...
      99+
      2024-04-02
    • python如何读取文件夹中图片的图片名并写入excel表格
      本篇文章为大家展示了python如何读取文件夹中图片的图片名并写入excel表格,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。有的时候,我们需要读取图片名,写入表格中,以便结合图片的其他信息,做进一...
      99+
      2023-06-21
    • Python中如何读取图片
      Python中如何读取图片,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、OpenCV读取图片OpenCV读取的图片,直接就是numpy.ndarray格式,无需转换impo...
      99+
      2023-06-16
    • html中怎么实现截取图片功能
      这篇文章主要介绍了html中怎么实现截取图片功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇html中怎么实现截取图片功能文章都会有所收获,下面我们一起来看看吧。一、HTML图片基础知识在HTML中,我们常常...
      99+
      2023-07-05
    • JAVA POI的excel中包含图片进行读取保存,单张图片,多张图片
      JAVA POI的excel中包含图片进行读取保存,单张图片,多张图片 ---------------------------------------------效果-----------------...
      99+
      2023-09-13
      java excel 开发语言
    • python怎么读取excel的一列
      python 中读取 excel 一列的方法:安装 openpyxl 库。加载 excel 文件。获取工作表。指定列号并获取列。迭代读取列中的单元格值。 Python 中读取 Exce...
      99+
      2024-04-02
    • python怎么读取excel的数据
      如何在 python 中读取 excel 数据?通过使用 pandas 库中的 read_excel() 函数,您可以轻松地读取 excel 数据:导入 pandas 库:import ...
      99+
      2024-04-02
    • springmvc怎么从MySQL中读取图片
      Spring MVC 可以通过使用MySQL数据库来读取图片,并将其显示在前端页面上。以下是一个简单的示例代码: 首先,创建一个实...
      99+
      2024-04-18
      springmvc MySQL
    • Python读取Excel中的数据
       1、用xlrd包读取excel数据 import xlrddef read_excel(): # 打开文件,xlrd.open_workbook(),函数中参数为文件路径,分为相对路径和绝对路径 workBook = xlrd...
      99+
      2023-09-12
      excel python
    • python怎么读取excel数据
      在Python中读取Excel数据通常使用的是pandas库。可以通过以下步骤来读取Excel数据: 首先需要安装pandas库,...
      99+
      2024-04-02
    • python 读取excel中的数据
        应为工作的原因有所接触python,学习过程中找了点有用的东东,分享一下   使用xlrd包,它可以运行在所有的平台上。 Windows下载链接: http://download.csdn.net/detail/qianminming...
      99+
      2023-01-31
      数据 python excel
    • python怎么读取excel文件中的数据
      python 读取 excel 数据可使用 pandas 或 xlrd 库。pandas 的方法:1. 导入 pandas;2. 读取 excel 文件;3. 查看数据。xlrd 的方法...
      99+
      2024-04-02
    • python读取图片的方法是什么
      Python中读取图片的方法有多种,可以使用第三方库如PIL(Python Imaging Library)或OpenCV,也可以使...
      99+
      2024-02-29
      python
    • php怎么读取数据库中的图片
      在PHP中,可以使用MySQLi或PDO等库来连接数据库并读取图片。 以下是使用MySQLi库的示例代码: 在上面的示例中,首先使...
      99+
      2023-10-25
      php 数据库
    • python怎么读取excel的特定列
      如何使用 python 读取 excel 中的特定列?导入 openpyxl 库。打开 excel 文件。获取活动工作表。获取列索引,即 sheet.max_column。逐行读取列数据...
      99+
      2024-05-14
      python
    • 使用python怎么读取图片并显示
      今天就跟大家聊聊有关使用python怎么读取图片并显示,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。OpenCVOpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学...
      99+
      2023-06-14
    • 怎么用python读取图片属性信息
      今天小编给大家分享一下怎么用python读取图片属性信息的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。  &nbs...
      99+
      2023-06-29
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作