如何通过Python创建多个Excel工作表?

时间:2019-07-24 13:48:05

标签: python excel openpyxl

我有一个在for循环中运行的优化问题。我希望将每个新迭代的结果保存在同一工作簿的不同选项卡中。

这就是我在做什么。我得到了多个工作簿,而不是在同一工作簿中给我多个标签。

from openpyxl import Workbook
wb1 = Workbook()
for i in range(n):
    ws = wb1.active()
    ws.title = str(i)

    #code on formatting sheet, optimization problem

    wb1.save('outfile'+str(i)+'.xlsx')

1 个答案:

答案 0 :(得分:1)

每次迭代都使用相同的工作表-ws = wb1.active()-然后将结果保存到另一个工作簿中。

您只需要在每次迭代中创建一个new sheet。像这样:

from openpyxl import Workbook
wb1 = Workbook()
for i in range(n):
    ws = wb1.create_sheet("run " + str(i))

    #code on formatting sheet, optimization problem

wb1.save('outfile.xlsx')

请注意,在格式化所有工作表后,save会缩进以仅保存文件。不必每次迭代都保存。保存操作可能会花费一些时间,尤其是在添加更多标签时。