首页 > 解决方案 > 无法使用 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

标签: pythonpython-3.xopenpyxl

解决方案


您正在覆盖ws变量,因此在ws.cell(row=row,column=1).value. 更改ws = wb.create_sheet(str(keyword))ws2 = wb.create_sheet(str(keyword))解决您的问题。


推荐阅读