我编写了一些迭代平面文件的代码。在某个部分完成阅读后,我将数据放入电子表格中。然后,我返回并继续阅读下一部分的平面文件并写入新工作表......依此类推。
循环遍历python代码时,我为上面阅读的每个部分创建了一个新的工作表。在这个循环中,我创建了新的工作表:
worksheet = workbook.add_worksheet(thename)
问题是第二次循环时,python在将上面的工作表对象重新分配给新工作表时崩溃。有没有办法“关闭工作表对象”,然后重新分配它?
仅供参考:如果我不能使用相同的对象名称,在这种情况下使用“工作表”,为了处理“worksheet1”,“worksheet2”,“worksheet3”等,代码将变得非常冗长和混乱。 ......(你可能想象)
提前谢谢!
答案 0 :(得分:0)
不是将变量worksheet
分配给workbook.add_worksheet(thename)
,而是拥有一个名为worksheets
的列表。通常worksheet = workbook.add_worksheet(thename)
时,请执行worksheets.append(workbook.add_worksheet(thename))
。然后使用worksheets[-1]
访问您的最新工作表。
答案 1 :(得分:0)
问题是第二次循环时,python在将上面的工作表对象重新分配给新工作表时崩溃。
运行XlsxWriter程序时,Python不应该崩溃。如果是,您应该提交错误报告。
您可以通过几种不同的方式遍历工作表。例如,通过在循环中创建工作表:
import xlsxwriter
workbook = xlsxwriter.Workbook('test.xlsx')
for _ in range(4):
worksheet = workbook.add_worksheet()
worksheet.write('A1', 'Hello')
workbook.close()
或者通过在循环外创建工作表,然后使用worksheets()
方法循环它们:
import xlsxwriter
workbook = xlsxwriter.Workbook('test.xlsx')
workbook.add_worksheet()
workbook.add_worksheet()
workbook.add_worksheet()
workbook.add_worksheet()
for worksheet in workbook.worksheets():
worksheet.write('A1', 'Hello')
workbook.close()
您还可以将工作表存储在列表中并对其进行迭代。这基本上与worksheets()
方法正在进行。