Как прочитать файл Excel, создать QR-код? - PullRequest
0 голосов
/ 15 апреля 2020

Я пытался с этим кодом

from openpyxl import load_workbook
import qrcode

wb = load_workbook("D:\QR\qrcodes.xlsx")  
ws = wb.['Sheet1']  
column = ws['A']  # Column
data = [column[x].value for x in range(len(column))]

print(data)
qr = qrcode.QRCode(version = 1, error_correction = qrcode.constants.ERROR_CORRECT_H,box_size = 10, border = 4)

ext=".png"
for images in data:
    qr.add_data(i)
    qr.make(fit=True)
    img=qr.make_image()
    img.save("{}{}".format(i,ext))

Но после каждого l oop созданное изображение также содержит значение предыдущего изображения, как это решить?

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

Вы создаете объект QR вне l oop.
Вам лучше инициализировать объект внутри вашего для l oop и
, также использующего функцию для создания вашего QR-изображения , поскольку переменные внутри функции имеют локальную область видимости.

ext=".png"
def createQr(data):
    qr = qrcode.QRCode(version = 1, error_correction = qrcode.constants.ERROR_CORRECT_H,box_size = 10, border = 4)
    qr.add_data(data)
    qr.make(fit=True)
    img=qr.make_image()
    return img

for i in data:
    img = createQr(i)
    img.save("{}{}".format(i,ext))

Также, как упомянуто @ martineau , вы должны изменить переменную l oop с images на i

0 голосов
/ 15 апреля 2020

Во-первых, пожалуйста, преобразуйте в CSV. Затем вы должны добавить перечисление, чтобы у вас также был индексный номер для имен файлов вместо нескольких file.jpg.

import csv
import qrcode

with open('D:\QR\qrcodes.csv') as csvfile:
    fieldnames= ["Your_Column"]
    reader= csv.reader(csvfile)

    qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
    )
    for i, row in enumerate(reader):
        labeldata = row[0]

        qr.add_data(labeldata)
        qr.make(fit=True)

        img = qr.make_image()
        img.save("test{}.jpg".format(i))
...