博客 / 詳情

返回

通過 Python 在 Excel 中添加或刪除圖片

在數據處理與辦公自動化場景中,Excel 文件常需嵌入圖片以增強可視化表達。然而,手動添加或刪除圖片不僅效率低下,還容易出錯。如何用 Python 實現 Excel 中圖片的自動化管理?答案是:使用 Free Spire.XLS for Python 免費庫。

本文將系統介紹如何通過 Python 代碼,在 Excel 文件中添加圖片刪除圖片,並提供完整示例與操作流程。內容基於真實可用的技術方案,適用於數據分析師、自動化工程師及辦公自動化愛好者。

為什麼選擇 Python + Free Spire.XLS?

在眾多 Python 庫中,如 pandasopenpyxl 等,雖然能處理 Excel 表格結構,但對圖片操作支持有限。例如:

  • openpyxl 只能讀寫單元格內容,無法直接操作圖片。
  • xlwings 雖可調用 Excel 界面,但依賴運行環境,不適用於腳本自動化。

相比之下,Free Spire.XLS for Python 是一款專為處理 Excel 文件設計的跨平台庫,支持圖片的添加、刪除、裁剪、格式調整等完整功能,且無需安裝 Excel,無需依賴 COM 接口,完全在 Python 環境中運行。

✅ 優勢總結如下:

對比維度 Free Spire.XLS for Python openpyxl / xlwings
圖片添加支持 ✅ 支持 ❌ 僅支持單元格內容
圖片刪除支持 ✅ 支持 ❌ 無直接接口
無需 Excel 運行 ✅ 支持 ❌ 需Excel環境
腳本自動化 ✅ 高效 ⚠️ 依賴外部環境

📌 説明:Free Spire.XLS for Python 支持 .xlsx 和 .xls 格式,但有篇幅限制,適用於小型文檔。

Python 添加圖片到 Excel 中的完整流程

步驟1:安裝庫

pip install spire.xls.free

步驟2:代碼示例 — 將圖片添加到指定單元格位置

該場景適用於圖片需與單元格內容對齊的情況(如報表中圖片對應某行數據),核心是通過 Worksheet.Pictures.Add() 指定圖片路徑和目標單元格。

from spire.xls import *
from spire.xls.common import *
     
# 創建工作簿對象
workbook = Workbook()

# 獲取第一個工作表
sheet = workbook.Worksheets[0]

# 添加圖片到工作表指定單元格
imgPath = "logo.png"
picture = sheet.Pictures.Add(1, 3, imgPath)

# 調整單元格大小以容納圖片
sheet.Columns[2].ColumnWidth = 25
sheet.Rows[0].RowHeight = 135

# 保存文件
workbook.SaveToFile("InsertImage.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

擴展技能:自定義圖片位置和尺寸添加

若需精確控制圖片的座標和寬高,可通過 ExcelPicture 提供的 LeftColumnOffset / TopRowOffset / Width / Height 屬性設置:

from spire.xls import *
from spire.xls.common import *

# 創建工作簿對象
workbook = Workbook()

# 獲取第一個工作表
sheet = workbook.Worksheets[0]

# 添加圖片到工作表指定單元格
imgPath = "logo.png"
picture = sheet.Pictures.Add(1, 3, imgPath)

# 自定義圖片位置
picture.LeftColumnOffset = 90 # 左側偏移90
picture.TopRowOffset = 20 # 頂部偏移20

# 自定義圖片尺寸
picture.Width = 150
picture.Height = 150

# 保存文件
workbook.SaveToFile("add_custom_size_image.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

通過 Python 刪除 Excel 中圖片的實現方法

Free Spire.XLS for Python 支持按索引刪除指定圖片或批量刪除所有圖片,以下是具體實現。

場景 1:刪除指定位置的圖片

工作表中的圖片以列表形式存儲在 Pictures 屬性中,可通過索引(從 0 開始)定位並刪除:

from spire.xls import *
from spire.xls.common import *

# 加載 Excel 文件
workbook = Workbook()
workbook.LoadFromFile("InsertImage.xlsx")

# 獲取第一個工作表
sheet = workbook.Worksheets[0]

# 刪除工作表中第一張圖片
sheet.Pictures[0].Remove()

# 保存文件
workbook.SaveToFile("DeleteImage.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

刪除工作表中所有圖片

通過遍歷 Pictures 列表,批量刪除所有圖片:

from spire.xls import *
from spire.xls.common import *

# 加載 Excel 文件
workbook = Workbook()
workbook.LoadFromFile("InsertImage.xlsx")

# 獲取第一個工作表
sheet = workbook.Worksheets[0]

# 刪除工作表中所有圖片
for i in range(sheet.Pictures.Count - 1, -1, -1):
    sheet.Pictures[i].Remove()

# 保存文件
workbook.SaveToFile("DeleteAllImage.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

📌 提示:刪除後,單元格將恢復為純文本或空白。

實際應用場景與建議

場景 推薦操作
數據報告生成 自動添加圖表或截圖
項目進度可視化 在任務表中嵌入進度圖
採購單/合同文件處理 添加公司 Logo 或審批頁圖片
自動化審計流程 刪除舊版本中的冗餘圖片

Free Spire.XLS for Python 為 Python 開發者提供了輕量、免費的 Excel 圖片操作方案,無需依賴 Microsoft Excel 即可完成圖片的添加(指定單元格 / 自定義尺寸)和刪除(指定圖片 / 批量刪除)。其優勢在於跨平台兼容性和簡潔的 API 設計,在實際應用中,可結合批量文件遍歷等邏輯,進一步擴展功能,提升 Excel 處理的自動化效率。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.