excel表中可以插入圖片,使用openpyxl庫可以實現這個功能。
# -*- coding: utf-8 -*-
import os
import sys
import time
import openpyxl
from openpyxl import load_workbook
from openpyxl.drawing.image import Image
def openxls_insert_img(fname,img_path):
'''
插入圖片
'''
wb=load_workbook(fname,data_only=True);
sheet=wb['mysheet1'] #獲取sheet
img = Image(img_path) #選擇圖片
#sheet.add_image(img) #添加圖片
sheet.add_image(img,"D3") #添加圖片
local_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
new_filename = "file_" + local_time + ".xlsx";
wb.save(new_filename) #不要忘記保存
if __name__ == '__main__':
#1. case1
# openxls_create();
#2.case2
fname = '人員列表.xlsx';
#openxls_read(fname)
#3.case3
img_path = "念奴嬌_赤壁懷古_image1.jpg";
openxls_insert_img(fname,img_path)
說明:
1. 引入Image類:
from openpyxl.drawing.image import Image
2. 創建Image對象:
img = Image(img_path)
3.添加圖片:
#sheet.add_image(img) #在excel的最坐上角添加圖片
sheet.add_image(img,"D3") #在指定的單元格添加圖片
4.保存:
wb.save(new_filename) #不要忘記保存
運行結果:
% python3 openxls_creat_read.py
% ls
人員列表.xlsx openxls_creat_read.py file_20220729115746.xlsx
可見,生成了新的文件“file_20220729115746.xlsx”,內容如下:
注意,如果使用
sheet.add_image(img) #在excel的最坐上角添加圖片
就會將Excel中的內容擋住,因為圖片是從最左上角開始插入的。