功能改进:连续输入需要生成的数据并添加到一张表中。
import openpyxl
wb = openpyxl.Workbook()
ws = wb.active
ws.append(['ID','SerialNumber','BarCode','EPC'])
ws.column_dimensions['C'].width = 35
ws.column_dimensions['D'].width = 30
ID = int(input('ID:')) - 1
startId = ID + 1
excelindex = 1 #控制插入数值的行位置
serial_num = int(input('流水号:')) - 1
#循环判断输入
judge = 'y'
#定义二维数值,存储BarCode与生成数量
bcnumArr = []
while(judge == 'y'):
temArr = []
barcode = input('BarCode:')
all_num = int(input('生成数量:'))
temArr.append(barcode)
temArr.append(all_num)
bcnumArr.append(temArr)
judge = input('是否继续输入(y/n):')
#根据指定位数在输入数值的前面补零
def add_pro_zero(str,num):
zeros = '0'
index = 0
if(str.__len__() < num):
index = num - str.__len__() - 1
while(index > 0):
zeros = zeros + '0'
index -= 1
return zeros + str
for i in range(bcnumArr.__len__()):
for j in range(bcnumArr[i][1]):
ID += 1
excelindex += 1
serial_num += 1
e = add_pro_zero(hex(serial_num)[2:].upper(),8) #EPC的后半部分为16进制
EPC = bcnumArr[i][0] + e
ws.cell(excelindex,1,ID)
ws.cell(excelindex,2,serial_num)
ws.cell(excelindex,3,bcnumArr[i][0])
ws.cell(excelindex,4,EPC)
wb.save(str(startId) + '-' + str(ID) + '.xlsx')