写入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
效果如下: