excel中插入图片

该代码示例展示了如何读取包含订单编号的原始Excel文件,然后根据订单编号在新的Excel工作表中插入对应的图片。图片按编号命名,如果一个编号对应多张图片,它们会被插入到数据行的末尾。使用了PIL库处理图片尺寸,并用xlsxwriter库写入新的Excel文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import xlrd
import xlsxwriter
import os
from PIL import Image
import sys

'''
往excel中插入图片
原始excel数据中某一列是订单编号,图片则是以订单编号命名的,若该订单编号对应多个图片,图片命名为:订单编号-num.***
图片插入在原始数据的最后
'''

def func():
    image_list=get_images()
    nrow=raw_sheet.nrows
    nclo=raw_sheet.ncols
    for i in range(nrow):
        for j in range(nclo):
            title=raw_sheet.cell_value(i,j)
            print(title)
            new_sheet.write(i,j,title)
        bnum=raw_sheet.cell_value(i,2).strip()
        now_col=nclo
        for k in image_list:
            if bnum in k and bnum:
                img=Image.open(f"images\\{k}")
                img_width=img.size[0]
                img_height=img.size[1]
                x_scale=40/img_width
                y_scale=30/img_height
                new_sheet.set_column(now_col,now_col+1)
                new_sheet.insert_image(i,now_col,f"images\\{k}",{"x_scale":x_scale,"y_scale":y_scale})
                now_col+=1
    new_sheet.set_default_row(30)


def get_images():
    for root,dir,fs in os.walk("images"):
        return fs

if __name__ == '__main__':
    raw_file=sys.argv[1]
    wbook=xlsxwriter.Workbook("new.xlsx")
    new_sheet=wbook.add_worksheet()
    raw_book=xlrd.open_workbook(raw_file)
    raw_sheet=raw_book.sheet_by_index(0)

    func()
    wbook.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值