批量生成标签

import os
import qrcode
import openpyxl
from openpyxl.drawing.image import Image


# 制作二维码
def gen_image(text,name):
        img = qrcode.make(text)
        with open(name,"wb") as f:
            img.save(f)

# 写入二维码           
def write_img(img_name,position):
    imgsize = (720/12,720/12)
    img = Image(img_name)
    img.width,img.height = imgsize
    wb[str(i)].add_image(img,position)



# 查找excel文件
def excel_file():
        path = os.getcwd()
        files = os.listdir(path)
        fullpath = [f for f in files if not f.startswith(("~$")) and f.endswith((".xlsx"))]
        return  os.path.join(path,fullpath[0])

if __name__ == "__main__":
        # 打开excel工作薄
        wb = openpyxl.load_workbook(excel_file())
        # 打开excel工作表清单
        QD_sheet = wb.worksheets[0]
        # 打开excel工作表标签模板
        BQ_sheet = wb.worksheets[1]

        if not os.path.exists("qrcode"):
                os.mkdir("qrcode")

        num = input("请输入需要生成的标签数量:")    
        for i in range(1,int(num) + 1):
                # 复制模板工作表
                new_sheet = wb.copy_worksheet(BQ_sheet)
                # 重命名新工作表
                new_sheet.title = str(i)
                # 将清单中的SN复制到新工作表指定单元格
                text = QD_sheet['A' + str(i+1)].value
                new_sheet['B7'].value = text

                # 指定二维码存放位置
                text_png_name = "qrcode/" + "A" + str(i+1) + ".png"
                # 指定二维码粘贴位置
                paste = "A7"
                # 按清单列表制作二维码并存放到指定位置
                gen_image(text,text_png_name)
                # 将二维码放置到新工作表指定单元格
                write_img(text_png_name,paste)
        print("已生成" + str(num)+"个标签")

    #保存excel文件  
        wb.save(excel_file())