我是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()
请告诉我编码有什么问题?
这应该可以解决问题(代码注释中的解释)
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()