Excel是主要用於處理表格和資料的工具,我們也能在其中插入、編輯或管理圖片,為工作表增添視覺效果,提升報告的吸引力。本文將詳細介紹如何使用Python操作Excel中的圖片,包含以下4個基礎示例:
- Python 在Excel中插入圖片
- Python 替換Excel中的圖片
- Python 提取Excel中的圖片
- Python 刪除Excel中的圖片
首先需要安裝第三方Python庫- Spire.XLS for Python。可以下載產品後再從本地路徑安裝使用,也可以直接使用以下pip命令安裝:
pip install Spire.XLS
Python 在Excel中插入圖片
我們可以使用Spire.XLS for Python庫在指定單元格中插入圖片,並設定圖片大小等。操作如下:
- 建立工作簿Workbook物件並獲取指定工作表;
- 使用Worksheet.Pictures.Add(int topRow, int leftColumn, Image image)方法在工作表指定單元格中插入圖片;
- 透過ExcelPicture類下的各屬性設定圖片的寬度、高度、與單元格邊框的距離等;
- 使用SaveToFile()方法儲存Excel檔案。
示例程式碼:
from spire.xls import * from spire.xls.common import * # 建立Workbook物件 workbook = Workbook() # 獲取第一張工作表 sheet = workbook.Worksheets[0] # 在指定單元格中插入圖片(此處為第一行第二列,即B1單元格) picture = sheet.Pictures.Add(1, 2, "示例.png") # 設定圖片寬高度 picture.Width = 120 picture.Height = 120 # 調整圖片所在位置的列寬和行高 sheet.Columns[1].ColumnWidth = 20 sheet.Rows[0].RowHeight = 110 # 設定單元格邊框與圖片之間的距離 picture.LeftColumnOffset = 90 picture.TopRowOffset = 20 # 儲存檔案 workbook.SaveToFile("插入圖片.xlsx", ExcelVersion.Version2016) workbook.Dispose()
Python 替換Excel中的圖片
要用新圖片替換Excel中的原有圖片,可以參考如下步驟:
- 載入Excel檔案,並獲取指定工作表;
- 透過Worksheet.Pictures[]屬性獲取指定圖片;
- 載入新圖,並透過ExcelPicture.Picture屬性將指定圖片替換為新圖;
- 使用SaveToFile()方法儲存Excel檔案。
示例程式碼:
from spire.xls import * from spire.xls.common import * # 載入Excel文件 workbook = Workbook() workbook.LoadFromFile ("插入圖片.xlsx") # 獲取第一張工作表 sheet = workbook.Worksheets[0] # 獲取工作表中第一張圖片 excelPicture = sheet.Pictures[0] # 替換圖片 excelPicture.Picture = Image.FromFile("pic.jpg") # 儲存文件 workbook.SaveToFile("替換圖片.xlsx", ExcelVersion.Version2016) workbook.Dispose()
Python 提取Excel中的圖片
Spire.XLS for Python庫也可以讀取Excel文件中的圖片,並儲存到指定的檔案路徑。步驟如下:
- 載入Excel檔案,並獲取指定工作表;
- 遍歷工作表中的所有圖片;
- 呼叫ExcelPicture.Picture.Save()方法提取Excel中的圖片。
示例程式碼:
from spire.xls import * from spire.xls.common import * # 載入Excel文件 workbook = Workbook() workbook.LoadFromFile("圖示.xlsx") # 獲取第一張工作表 sheet = workbook.Worksheets[0] # 獲取工作表中所有圖片 for i in range(sheet.Pictures.Count - 1, -1, -1): pic = sheet.Pictures[i] # 儲存圖片 pic.Picture.Save("提取圖片\\圖片-{0:d}.png".format(i), ImageFormat.get_Png()) workbook.Dispose()
Python 刪除Excel中的圖片
Worksheet.Pictures[imgIndex].Remove() 方法允許我們透過索引刪除指定圖片。要刪除Excel中所有圖片,可以遍歷每張圖片然後刪除。示例程式碼如下:
from spire.xls import * from spire.xls.common import * # 載入Excel文件 workbook = Workbook() workbook.LoadFromFile("圖示.xlsx") # 獲取第一張工作表 sheet = workbook.Worksheets[0] # 刪除工作表中所有圖片 for i in range(sheet.Pictures.Count - 1, -1, -1): sheet.Pictures[i].Remove() # 刪除指定圖片 # sheet.Pictures[imgIndex].Remove() # 儲存文件 workbook.SaveToFile("刪除圖片.xlsx", ExcelVersion.Version2013) workbook.Dispose()
上述示例能幫助掌握使用Python在Excel中插入、替換、刪除圖片的技巧,並進行一些基本的圖片設定。如有問題,可前往論壇交流。