gpt4 book ai didi

python - 使用 Python 在 XLSX 中处理图像

转载 作者:行者123 更新时间:2023-12-04 22:31:54 25 4
gpt4 key购买 nike

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

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

我是 Python 新手,所以请多多包涵,但我从搜索中发现了几件事:

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

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

  • 先感谢您

    最佳答案

    根据 how to get the relative position of shapes within a worksheet ,在 Excel 对象模型中,您可以通过 .TopLeftCell 获得与图像相邻的单元格属性(property):

    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

    打印:
    $B$2
    $B$5
    $D$3

    关于python - 使用 Python 在 XLSX 中处理图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52021006/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com