0
点赞
收藏
分享

微信扫一扫

openpyxl生成excel并写入要求数据(二)

西曲风 2022-03-18 阅读 70
python

功能改进:连续输入需要生成的数据并添加到一张表中。

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')
举报

相关推荐

0 条评论