最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)在Excel中動態(tài)插入與刪除圖片的完整指南

 更新時間:2026年01月30日 08:53:11   作者:大黃評測  
在自動化報表生成、數(shù)據(jù)可視化或辦公流程優(yōu)化中,經(jīng)常需要在 Excel 文件中嵌入圖表,本文將詳細介紹如何使用主流庫在 Excel 中添加圖片和刪除圖片,有需要的小伙伴可以了解下

在自動化報表生成、數(shù)據(jù)可視化或辦公流程優(yōu)化中,經(jīng)常需要在 Excel 文件中嵌入圖表、公司 Logo、產(chǎn)品圖片等圖像元素。同時,在某些場景下(如模板清理或隱私 處理),也可能需要移除已存在的圖片。借助 Python 的強大生態(tài),我們可以高效地實現(xiàn)這些操作。

本文將詳細介紹如何使用 openpyxl(適用于 .xlsx 格式)和 xlwings(支持與 Excel 應用交互)兩種主流庫,在 Excel 中添加圖片刪除圖片,并提供可直接運行的示例代碼。

一、準備工作

安裝依賴庫

# openpyxl:純 Python 操作 Excel,無需安裝 Excel 軟件
pip install openpyxl pillow

# xlwings:需本地安裝 Microsoft Excel(Windows/macOS)
pip install xlwings

注意:pillowopenpyxl 處理圖片所必需的圖像庫。

二、方法一:使用 openpyxl 插入圖片(推薦用于無交互場景)

openpyxl 支持在指定單元格位置插入圖片,并可設置偏移、錨定方式等。

示例:向 Excel 插入圖片

from openpyxl import Workbook
from openpyxl.drawing.image import Image

# 創(chuàng)建新工作簿或加載現(xiàn)有文件
wb = Workbook()
ws = wb.active

# 加載圖片(支持 PNG、JPG、BMP 等)
img = Image("logo.png")

# 可選:調(diào)整圖片尺寸(單位為像素)
img.width = 150
img.height = 100

# 將圖片錨定到 A1 單元格(左上角對齊)
ws.add_image(img, "A1")

# 保存文件
wb.save("with_image.xlsx")
print("圖片已成功插入 Excel!")

高級用法:精確控制位置

若需更精細控制(如偏移量),可使用 AnchorMarker

from openpyxl.drawing.spreadsheet_drawing import OneCellAnchor, AnchorMarker
from openpyxl.utils.units import pixels_to_EMU

# 創(chuàng)建錨點:從 B2 單元格開始,右偏移 10 像素,下偏移 5 像素
col = 1  # B 列(從 0 開始計數(shù))
row = 1  # 第 2 行(從 0 開始)
x_offset = pixels_to_EMU(10)
y_offset = pixels_to_EMU(5)

marker = AnchorMarker(col=col, colOff=x_offset, row=row, rowOff=y_offset)
anchor = OneCellAnchor(_from=marker, ext=img._size)
ws._images.append(img)
ws.drawing.anchor.append(anchor)

注意:openpyxl 不支持刪除已有圖片。它只能在新建或加載的工作表中添加新圖片,無法識別或移除原始文件中的圖像。

三、方法二:使用 xlwings 插入與刪除圖片(支持完整 CRUD)

xlwings 通過調(diào)用本地 Excel 應用程序,能讀取、修改甚至刪除工作表中的所有對象,包括圖片。

示例 1:插入圖片

import xlwings as xw

app = xw.App(visible=False)  # 后臺運行 Excel
wb = app.books.open("report.xlsx")
ws = wb.sheets["Sheet1"]

# 在 A1 單元格左上角插入圖片
ws.pictures.add("chart.jpg", left=ws.range("A1").left, top=ws.range("A1").top)

wb.save("report_with_image.xlsx")
wb.close()
app.quit()
print("圖片已插入!")

示例 2:刪除所有圖片

import xlwings as xw

app = xw.App(visible=False)
wb = app.books.open("report_with_image.xlsx")
ws = wb.sheets["Sheet1"]

# 刪除當前工作表中的所有圖片
for pic in ws.pictures:
    pic.delete()

wb.save("cleaned_report.xlsx")
wb.close()
app.quit()
print("所有圖片已刪除!")

示例 3:按名稱刪除特定圖片

# 假設圖片名為 "Logo"
if "Logo" in [p.name for p in ws.pictures]:
    ws.pictures["Logo"].delete()

優(yōu)點:

  • 支持插入、刪除、移動、重命名圖片。
  • 可獲取圖片位置、大小等屬性。
  • 兼容 Excel 原生格式(包括 .xls 和 .xlsx)。

缺點:

  • 必須安裝 Microsoft Excel。
  • 僅支持 Windows 和 macOS,不適用于 Linux 服務器環(huán)境。
  • 進程管理需謹慎(避免 Excel 進程殘留)。

四、對比總結

功能openpyxlxlwings
插入圖片??
刪除圖片??
無需 Excel 軟件??
支持 Linux??
性能(大批量)中(依賴 Excel 進程)
精細控制(偏移/縮放)有限強大

五、最佳實踐建議

  • 生成新報表:優(yōu)先使用 openpyxl,輕量且跨平臺。
  • 編輯現(xiàn)有文件(含刪圖) :使用 xlwings,功能全面。
  • 生產(chǎn)環(huán)境部署:若在 Linux 服務器運行,只能選擇 openpyxl;Windows 服務器可考慮 xlwings(但需安裝 Excel)。
  • 異常處理:使用 xlwings 時務必用 try...finally 確保 app.quit() 被調(diào)用,防止進程泄漏。

結語

通過 Python 操作 Excel 中的圖片,不再是繁瑣的手動任務。無論是自動嵌入分析圖表,還是批量清理敏感圖像,openpyxlxlwings 都提供了強大而簡潔的解決方案。根據(jù)你的運行環(huán)境和功能需求選擇合適的工具,即可輕松實現(xiàn) Excel 圖像的自動化管理,大幅提升辦公效率與系統(tǒng)智能化水平。

到此這篇關于Python實現(xiàn)在Excel中動態(tài)插入與刪除圖片的完整指南的文章就介紹到這了,更多相關Python Excel插入與刪除圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • pandas中使用數(shù)據(jù)透視表的示例代碼

    pandas中使用數(shù)據(jù)透視表的示例代碼

    本文主要介紹了pandas中使用數(shù)據(jù)透視表的示例代碼,主要包含pivot_table函數(shù)的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-12-12
  • Python隨機數(shù)種子(random seed)的設置小結

    Python隨機數(shù)種子(random seed)的設置小結

    隨機數(shù)種子是控制偽隨機數(shù)生成器的初始值,通過設置相同的種子,可以確保隨機數(shù)序列的一致性,本文主要介紹了Python隨機數(shù)種子(random seed)的設置,感興趣的可以了解一下
    2025-03-03
  • Python生成二維碼的教程詳解

    Python生成二維碼的教程詳解

    作為一名合格的?Python?程序員,在工作中必然會用到二維碼相關操作,那如何快速的用?Python?實現(xiàn)呢?別著急,咱們這篇博客就為你解決
    2022-10-10
  • linux環(huán)境下安裝pyramid和新建項目的步驟

    linux環(huán)境下安裝pyramid和新建項目的步驟

    這篇文章簡單介紹了linux環(huán)境下安裝pyramid和新建項目的步驟,大家參考使用
    2013-11-11
  • Python遞歸實現(xiàn)打印多重列表代碼

    Python遞歸實現(xiàn)打印多重列表代碼

    今天小編就為大家分享一篇Python遞歸實現(xiàn)打印多重列表代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Java中的各種單例模式優(yōu)缺點解析

    Java中的各種單例模式優(yōu)缺點解析

    這篇文章主要介紹了Java中的各種單例模式解析,單例模式是Java中最簡單的設計模式之一,這種類型的設計模式屬于創(chuàng)建者模式,它提供了一種訪問對象的最佳方式,需要的朋友可以參考下
    2023-07-07
  • pygame實現(xiàn)時鐘效果

    pygame實現(xiàn)時鐘效果

    這篇文章主要為大家詳細介紹了pygame實現(xiàn)時鐘效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 運用python去除圖片水印

    運用python去除圖片水印

    本文介紹了如何運用python去除圖片的水印,文中使用圖片以及代碼詳細的介紹了兩種去除的方法,感興趣的朋友可以自己參考一下
    2021-08-08
  • python?中collections的?deque使用詳解

    python?中collections的?deque使用詳解

    這篇文章主要介紹了python中collections的deque使用詳解,deque是一個雙端隊列,如果要經(jīng)常從兩端append的數(shù)據(jù),選擇這個數(shù)據(jù)結構就比較好了,更多相關內(nèi)容,需要的小伙伴可以參考下面文章內(nèi)容
    2022-09-09
  • 使用Python對文件進行批量改名的方法

    使用Python對文件進行批量改名的方法

    這篇文章主要介紹了使用Python對文件進行批量改名的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03

最新評論

青州市| 安义县| 满城县| 洛隆县| 巢湖市| 元谋县| 随州市| 九龙县| 新竹市| 城市| 特克斯县| 买车| 贡嘎县| 都匀市| 宁国市| 西青区| 临夏市| 凭祥市| 衢州市| 和田县| 易门县| 宁阳县| 青龙| 息烽县| 绍兴县| 文山县| 安徽省| 乌鲁木齐市| 深水埗区| 商丘市| 华亭县| 伊川县| 武定县| 报价| 安远县| 曲靖市| 通州区| 海门市| 双柏县| 博湖县| 寻乌县|