最近在研究盘点机盘点的问题,其中有一部分的商品没有的条形码,就想着自个生成条形码。参考了网上的教程,关于Excel批量生成条形码有大致以下三种:
下载条形码字体生成条形码。(打印出来后扫描不出来)
Excel开发组件生成条形码。(可以扫出来,操作繁琐)
Python批量生成条形码,再将图片路径插入到表格中。(就是一搜就出现的12行批量生成条形码的东东)
尝试了以上三种后,阅读openpyxl示例文档的时候,发现支持直接在Excel中插入图片,就有了如下代码:
from openpyxl import load_workbook,Workbook
from openpyxl.drawing.image import Image
from pystrich.code128 import Code128Encoder
def excelCode128(file):
'''
file:在文件目录下执行,excel的文件名。
A列是商品编码,B列是生成的条形码。
'''
wb = load_workbook(file)
sheet = wb.active
x = 0
for r in range(1,sheet.max_row+1):
for i in range(1,3):
if i == 1:
# A列数据生成条码
var = sheet.cell(column=i,row=r).value
filename = str(var)+'.PNG'
Code128Encoder(str(var)).save(filename,bar_width=1)
if i == 2:
# B列数据插入条码
img = Image(filename)
B = 'B'+str(r)
sheet.add_image(img,B)
x += 1
wb.save(file)
print("执行成功!共计%s条!" %str(x))