簡體   English   中英

使用 Python 在 XLSX 中處理圖像

[英]Processing images in XLSX using Python

我有一個 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 文件中的哪個位置可以找到將圖像關聯到電子表格中各自單元格的信息。

先感謝您

根據如何獲取工作表中形狀的相對位置,在 Excel 對象模型中,您可以通過其.TopLeftCell屬性獲取與圖像相鄰的單元格:

測試圖片

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM