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

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

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

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

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

一、準(zhǔn)備工作

安裝依賴(lài)庫(kù)

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

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

注意:pillowopenpyxl 處理圖片所必需的圖像庫(kù)。

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

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

示例:向 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 單元格(左上角對(duì)齊)
ws.add_image(img, "A1")

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

高級(jí)用法:精確控制位置

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

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

# 創(chuàng)建錨點(diǎn):從 B2 單元格開(kāi)始,右偏移 10 像素,下偏移 5 像素
col = 1  # B 列(從 0 開(kāi)始計(jì)數(shù))
row = 1  # 第 2 行(從 0 開(kāi)始)
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 不支持刪除已有圖片。它只能在新建或加載的工作表中添加新圖片,無(wú)法識(shí)別或移除原始文件中的圖像。

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

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

示例 1:插入圖片

import xlwings as xw

app = xw.App(visible=False)  # 后臺(tái)運(yùn)行 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"]

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

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

示例 3:按名稱(chēng)刪除特定圖片

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

優(yōu)點(diǎn):

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

缺點(diǎn):

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

四、對(duì)比總結(jié)

功能openpyxlxlwings
插入圖片??
刪除圖片??
無(wú)需 Excel 軟件??
支持 Linux??
性能(大批量)中(依賴(lài) Excel 進(jìn)程)
精細(xì)控制(偏移/縮放)有限強(qiáng)大

五、最佳實(shí)踐建議

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

結(jié)語(yǔ)

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

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

相關(guān)文章

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

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

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

    Python隨機(jī)數(shù)種子(random seed)的設(shè)置小結(jié)

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

    Python生成二維碼的教程詳解

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

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

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

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

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

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

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

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

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

    運(yùn)用python去除圖片水印

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

    python?中collections的?deque使用詳解

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

    使用Python對(duì)文件進(jìn)行批量改名的方法

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

最新評(píng)論

嘉定区| 红安县| 雅安市| 铁岭县| 岐山县| 江达县| 连平县| 双牌县| 原阳县| 营山县| 永定县| 墨竹工卡县| 永兴县| 田阳县| 呼伦贝尔市| 南郑县| 庆云县| 富蕴县| 石首市| 法库县| 盐城市| 九江县| 自治县| 浠水县| 大连市| 柯坪县| 左权县| 象山县| 平和县| 长治县| 兴义市| 海盐县| 福海县| 海口市| 闸北区| 安塞县| 德江县| 剑河县| 景宁| 中卫市| 紫云|