如何使用xlsxwriter向Excel中插入数据和图片

写入Excel中后有显示第一列客户款号总库存这些,开始写在第12行第一列开始写入,一行写入5个,然后再隔12行,再写入下边的数据,图片需要对应客户款号在Excel写入图片,类似下面的格式
在这里插入图片描述

在这里插入图片描述

import xlsxwriter
import os
#以空字符填充缺失值,不然写入数据会报错
data.fillna('',inplace=True)
#创建一个新Excel文件并添加一个工作表。
workbook = xlsxwriter.Workbook('images.xlsx')
worksheet = workbook.add_worksheet()

# # 加宽偶数列,,根据图片缩放大小进行调整。
worksheet.set_column('B:B', 15)
worksheet.set_column('D:D', 15)
worksheet.set_column('F:F', 15)
worksheet.set_column('H:H', 15)
worksheet.set_column('J:J', 15)

merge_format = workbook.add_format({
#     'bold':     True,
#     'border':   6,
    'align':    'center',
    'valign':   'vcenter',
    'fg_color': '#D7E4BC',
})

merge_format_ = workbook.add_format({
    'align':    'center',
    'valign':   'vcenter',
})

for i in range(len(data)):
    #合并单元格
    worksheet.merge_range(i//5*16, i%5*2, i//5*16+11, i%5*2+1, '')
    #写入数据
    for j in range(4):
        worksheet.write(i//5*16+j+12,i%5*2 ,['客户款号','总库存','零售数量','前一周'][j],merge_format)
        worksheet.write(i//5*16+j+12,i%5*2+1 ,data.iloc[i,0::].values[j],merge_format_)
        #插入图片,insert_image(位置行,位置列,文件名,缩放比例),如果没找到图片会有警告
    if data.iloc[i,0::].values[0]+'.jpg' not in os.listdir('.\img\\'):
        print(i,'找不到',data.iloc[i,0::].values[0]+'.jpg')
    else:
        worksheet.insert_image(i//5*16,i%5*2+1,'img/'+data.iloc[i,0::].values[0]+'.jpg',{'x_scale': 0.1, 'y_scale': 0.12}) 
        print(i,'写入成功!')
    i+=1
workbook.close()
0 写入成功!
1 写入成功!
2 找不到 N038400237.jpg
3 找不到 N038400301.jpg
4 找不到 N039400310.jpg
5 找不到 N038400552.jpg
6 写入成功!
7 找不到 N038401101.jpg
8 找不到 N039400105.jpg
9 找不到 N039400219.jpg

效果如下:
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值