无法使用openpyxl创建多个工作表

时间:2019-01-22 14:26:30

标签: python python-3.x openpyxl

我正在尝试使用openpyxl根据第1列中不同行中的值创建多个工作表。问题是当我运行脚本时,它仅使用第一个值创建了一个新工作表,仅此而已。

如何使用“ Sheet1”中可用的不同值创建多个工作表?

到目前为止我的尝试:

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 :(得分:1)

您正在覆盖ws变量,因此在ws.cell(row=row,column=1).value中创建了None值。将ws = wb.create_sheet(str(keyword))更改为ws2 = wb.create_sheet(str(keyword))可解决您的问题。