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中的内容挡住,因为图片是从最左上角开始插入的。