Python:多个Excel工作表中的组合输出

问题描述 投票:0回答:1

我是Python新手。我从24个数字中生成了3个数字组合(总共2024个组合)。我的意图是将组合放在同一工作簿的不同excel工作表中。例如,每张纸中有100种组合。我从该站点获得了一些参考,并尝试使用它。但是,仍然所有组合都在同一张纸上生成。

import xlsxwriter


workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()


import itertools as it
combin = it.combinations(range(1,25),3)
count_combin = []
for i in combin:
    count_combin.append(i)



max_row = 100
row_num = 0

for data in count_combin:

    if row_num == max_row:
        worksheet = workbook.add_worksheet()
        row_num = 0

for row, group in enumerate(count_combin):
    for col in range(3):
        worksheet.write (row, col, group[col])
        row_num += 1

workbook.close()

请告诉我编码有什么问题?

python excel xlsxwriter python-3.8
1个回答
0
投票

这应该可以解决问题(代码注释中的解释)

import xlsxwriter
import itertools as it
from math import floor

workbook = xlsxwriter.Workbook('test.xlsx')
combin = it.combinations(range(1,25),3)

max_row = 100
lst_combin = list(combin)

for x, c in enumerate(lst_combin):
    # if x is zero or reachs max_row add a new work sheet
    if x % max_row == 0:
        worksheet = workbook.add_worksheet()

    # nx = x unless x is greater than max row ..
    # .. then nx = x  - max rows multiplied by the number of max rows in x
    nx = x
    if x > max_row:
        nx = x - max_row*(floor(x/max_row))

    worksheet.write(nx, 0, c[0])
    worksheet.write(nx, 1, c[1])
    worksheet.write(nx, 2, c[2])

    workbook.close()
© www.soinside.com 2019 - 2024. All rights reserved.