excel表中可以插入图片,使用openpyxl库可以实现这个功能。
2.代码:# -*- 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中的内容挡住,因为图片是从最左上角开始插入的。



