使用 Python 处理 XLSX 中的图像

2023-12-13

我有一个 xlsx,有两张表:一张在 G1:O25 中有一些数据(我们称之为“数据”),一张在 G1:O25 的单元格中插入了一些图像(我们称之为“图像”)。

我的目标是使用 Python 通过图像过滤数据。我想要一个弹出窗口,显示单元格 G1 中的图像以及一个复选框或包含/排除此数据点的内容。然后使用包含的数据点创建一个新工作表(“过滤数据”)。

我是 Python 新手,所以请耐心等待,但我通过搜索发现了一些事情:

  1. 我可以将数据加载到列表中。
  2. xlsx 文件实际上是 zip 文件,因此我可以使用 zipfile 和 matplotlib 从子目录中读取图像并显示它们。
  3. 添加复选框并进行过滤应该不难。

我遇到的问题:

  1. 由于 openpyxl 在读取/写入工作簿时不会保留图像,因此当我附加“过滤数据”表时,我会丢失图像。也许有一种解决方法,例如保存到单独的工作表并使用 COM?
  2. 尽管我可以使用 zip 方法加载图像,但我丢失了它们与哪个单元格关联的信息。它们在 xlsx/zip 文件内按逻辑顺序排列,但有时会丢失图像(即单元格 K11 没有图像),所以我不能假设 image1.jpeg 对应于单元格 G1 等等向前)。我不确定在 Excel 文件中的哪个位置可以找到将图像与电子表格中各自的单元格关联的信息。

先感谢您


As per 如何获取工作表中形状的相对位置,在 Excel 对象模型中,您可以通过其获取与图像相邻的单元格.TopLeftCell财产:

test pictures

import win32com.client
x=win32com.client.Dispatch("Excel.Application")
wb=x.Workbooks.Open("<path_to.xlsx>")
ws=wb.Sheets("Sheet1")
for i in ws.Shapes:
    print i.TopLeftCell.Address

prints:

$B$2
$B$5
$D$3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 处理 XLSX 中的图像 的相关文章

  • 如何在 __init__ 中使用await设置类属性

    我如何定义一个类await在构造函数或类体中 例如我想要的 import asyncio some code class Foo object async def init self settings self settings setti
  • 在 Celery 任务中调用 Google Cloud API 永远不会返回

    我正在尝试拨打外部电话Google Cloud Natural Language API从一个内Celery任务 使用google cloud python包裹 问题是对 API 的调用永远不会返回 挂起 celery task def g
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • 多输出堆叠回归器

    一次性问题 我正在尝试构建一个多输入堆叠回归器 添加到 sklearn 0 22 据我了解 我必须结合StackingRegressor and MultiOutputRegressor 经过多次尝试 这似乎是正确的顺序 import nu
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • Excel VSTO 工作簿新活动

    在 Excel 2007 的一个 Excel 插件项目中 我需要检查创建新工作簿的事件 我还需要捕捉 Workbook Open 事件 我很容易做到这一点 在我在互联网上的研究中 我发现了以下内容 打开任何工作簿时都会引发 Applicat
  • 在 Excel 中查找结果将行复制到另一张工作表

    我需要一些帮助将数据从一个 Excel 工作表复制到另一个 例如 样本数据 A B C 1 aaa bbb ddd 2 bbb ccc eee 2 bbb ccc eee 3 ccc fff rrr 4 ccc fff ttt 5 ddd
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • 如何将特定范围内的标量添加到 numpy 数组?

    有没有一种更简单 更节省内存的方法可以单独在 numpy 中执行以下操作 import numpy as np ar np array a l r ar c a a 0 l ar tolist a r 它可能看起来很原始 但它涉及获取给定数
  • 行编号选择自动填充直到最后[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个包含数千行的表 我想通过在第一行旁边添加 1 2 3 来对行进行编号 然后选择这些行并拖动到最后以使用递增的数字进行填充 如何自动
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • 通过Python连接到Bigquery:ProjectId和DatasetId必须非空

    我编写了以下脚本来通过 SDK 将 Big Query 连接到 Python 如下所示 from google cloud import bigquery client bigquery Client project My First Pr
  • 当字段是数字时怎么说...在 mongodb 中匹配?

    所以我的结果中有一个名为 城市 的字段 结果已损坏 有时它是一个实际名称 有时它是一个数字 以下代码显示所有记录 db zips aggregate project city substr city 0 1 sort city 1 我需要修
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • Protobuf 如何编码 oneof 消息结构

    对于这个 python 程序 在编码时运行 protobuf 编码会给出以下输出 0a 10 08 7f8a 0104 08 02 10 0392 0104 08 02 10 03 18 01 我不明白的是为什么8a后面有一个01 为什么9
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 重新分配唯一值 - pandas DataFrame

    我在尝试着assign unique值在pandas df给特定的个人 For the df below Area and Place 会一起弥补unique不同的价值观jobs 这些值将分配给个人 总体目标是使用尽可能少的个人 诀窍在于这
  • 如何使用 PrimaryKeyRelatedField 更新多对多关系上的类别

    Django Rest 框架有一个主键相关字段 http www django rest framework org api guide relations primarykeyrelatedfield其中列出了我的 IDmany to m
  • 从 Excel 应用程序对象中查找位数(32 位/64 位)?

    是否可以从 Microsoft Office Interop Excel ApplicationClass 确定 Excel 是以 32 位还是 64 位运行 Edit该解决方案应该适用于 Excel 2010 和 Excel 2007 此
  • 如何在Python脚本中从youtube-dl中提取文件大小?

    我是 python 编程新手 我想在下载之前提取视频 音频大小 任何 YouTube 视频 gt gt gt from youtube dl import YoutubeDL gt gt gt url https www youtube c

随机推荐

  • D3js - 强制定向图 - 相邻节点和链接的高级突出显示,可能吗?

    在我的力导向图的帮助下 我成功地突出显示了来自 Mike Bostock 的教程 现在 对于我的想法和图表需求的进一步过程 我有点卡住了 首先是因为我对 d3js 仍然一无所知 其次 我还没有找到任何类似的东西 为了弄清楚我的意图 您可以在
  • 在 Dart 中何时使用部分/部分与导入/导出?

    我不完全理解之间的区别part part of and import export在 Dart 中使用库时 例如 one dart library one part two dart Class One and two dart part
  • Tkinter:访问使用 for 循环创建的特定小部件

    在我的 tkinter 项目中 我使用 a 为行列表中的每一行创建了一个条目 一个标签和两个按钮for环形 创建时我还将它们保存在列表中 现在我的问题是如何访问它们 例如 如果单击第 12 行的编辑按钮 那么我希望能够获取第 12 个条目的
  • 找到尽可能多的 2 的平方根的数字

    include
  • 从对象字典中获取值 C#

    我正在使用 LiveConnect sdk 来获取一些用户信息 在做了一切必要的事情之后 这就是我得到的结果 id 123456789 name a b first name a last name b link https profile
  • 将兰伯特等角圆锥投影转换为r中的wgs84

    我有兰伯特等角圆锥投影 x y 信息 我需要 WGS84 坐标 但我不知道lcc到底是什么 我在下面提供了 lcc 信息 有没有办法在r中将lcc转换为WGS84 example lcc x y xy lt cbind c 509535 7
  • Azure 应用服务在长 POST 请求时返回 413 有效负载太大

    在本地 这是可行的 但是当使用具有很长 似乎超过 100 000 个字符的任何内容 请求正文的 POST 请求访问我们的 Azure 应用服务 API 时 我们会收到 413 Payload Too Large 响应 这是一个相当长的 HT
  • 在 JavaScript 中从下拉列表中获取多个值

    如何使用 JavaScript 函数获取下拉列表中选择的值 用户可以从两个元素中选择多个值 以下是我正在使用的元素 提前致谢
  • 如何将列表中的所有整数相乘[重复]

    这个问题在这里已经有答案了 你好 我想将列表中的整数相乘 例如 l 1 2 3 l 1 2 2 2 3 2 output l 2 4 6 所以我在网上搜索 大多数答案都是关于将所有整数相乘 例如 1 2 3 Try a 列表理解 l x 2
  • 如何在多个视图控制器中从最后一个视图控制器移动到第一个视图控制器

    嗨 我是 iPhone 编程新手 有人可以帮我吗 我有多个 viewController 在第一个名为 HomeViewController 的 ViewController 中 我调用了该方法 self presentModalViewC
  • 密码分页总结果计数

    我有一个巨大的密码查询 我需要对其结果进行分页 我想做的是在限制完成之前获取结果总数 这是我的测试图 http console neo4j org id 6hq9tj 我尝试使用count o 在查询的所有部分 但我总是得到相同的结果 总数
  • 无法在 android api 23 上打开位置?

    我使用了以下代码 请求许可的对话按预期显示 但当我点击 允许 时 它什么也没做 日志消息不会显示为好像未授予权限 因此我转到参数来验证位置是否为 打开 以及 关闭 难道不是因为我授予应用程序访问我的位置的权限而应该打开它吗 如果我手动 打开
  • 如何为维恩图准备 Pandas df

    我有一个 Pandas 数据框 如下所示 ID VALUE A Today A Yesterday B Tomorrow C Tomorrow D Today D Tomorrow E Today
  • 获取 XML 文档注释

  • 如何收听N个频道? (动态选择语句)

    要开始执行两个 goroutine 的无限循环 我可以使用下面的代码 收到消息后 它将启动一个新的 goroutine 并永远持续下去 c1 make chan string c2 make chan string go DoStuff c
  • Schema.org 在一页上设置多个事件

    是否有一种正确的方法可以在 Schema org 的一个页面上显示多个事件 理想情况下 我们不希望每个事件都有一个页面 这是我们想要的示例结构 div div h2 Chili Cookoff h2 div div h3 span Manh
  • 如何将 knockout.js 与 ASP.NET MVC ViewModel 结合使用?

    Bounty 已经有一段时间了 我仍然有几个悬而未决的问题 我希望通过增加赏金也许这些问题能够得到解答 如何将 html 助手与 knockout js 一起使用 为什么需要准备好文档才能使其正常工作 有关更多信息 请参阅第一次编辑 如果我
  • 使用 prolog 解决 Caliban 问题

    我正在努力使用学校的序言来解决逻辑难题 线索如下 布朗 克拉克 琼斯和史密斯是四位为他们的人民服务的重要公民 作为建筑师 银行家 医生和律师的社区 尽管不一定 分别 布朗比琼斯更保守 但比史密斯更自由 比比他年轻的人打高尔夫球更好 并且拥有
  • 通过重叠两个数据框,为每个组/id 创建子图

    我有以下两个数据框 Load the required libraries import pandas as pd import matplotlib pyplot as plt Create dataset 1 data set 1 id
  • 使用 Python 处理 XLSX 中的图像

    我有一个 xlsx 有两张表 一张在 G1 O25 中有一些数据 我们称之为 数据 一张在 G1 O25 的单元格中插入了一些图像 我们称之为 图像 我的目标是使用 Python 通过图像过滤数据 我想要一个弹出窗口 显示单元格 G1 中的