Невозможно создать несколько листов, используя openpyxl - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь создать несколько листов на основе значений в разных строках в столбце 1, используя openpyxl. Дело в том, что когда я запускаю свой скрипт, он просто создает новый лист, используя первое значение, и все.

Как создать несколько листов, используя разные значения, доступные в «Лист1»?

Моя попытка до сих пор:

from openpyxl import load_workbook

wb = load_workbook('Document.xlsx')
ws = wb['Sheet1']

if __name__ == '__main__':
    for row in range(2, ws.max_row +1):
        if ws.cell(row=row,column=1).value==None:break
        keyword = ws.cell(row=row,column=1).value
        ws = wb.create_sheet(str(keyword)) #defining ws is a must here in order to reuse later
        print(keyword)
    wb.save('Document.xlsx')

Это входные данные, доступные в Sheet1 для создания трех разных листов:

45824
33125
13958

1 Ответ

0 голосов
/ 22 января 2019

Вы перезаписываете переменную ws и, следовательно, создаете значение None в ws.cell(row=row,column=1).value. Изменение ws = wb.create_sheet(str(keyword)) на ws2 = wb.create_sheet(str(keyword)) решит вашу проблему.

...