python xlsxwriter 工作表对象重用

python xlsxwriter worksheet object reuse

我编写了一些遍历平面文件的代码。阅读完某个部分后,我将数据放入电子表格中。然后,我返回并继续阅读下一节的平面文件并写入新的工作表...等等。

在遍历 python 代码时,我为上面阅读的每个部分创建了一个新工作表。在此循环期间,我创建了新的工作表:

工作表 = workbook.add_worksheet(名字)

问题是第二次通过循环时,python 在将上面的工作表对象重新分配给新工作表时崩溃。有没有办法"close the worksheet object",然后重新赋值?

仅供参考:如果我不能使用相同的对象名称,"worksheet" 在这种情况下,为了处理 "worksheet1"、[=26],代码将变得非常冗长和混乱=], "worksheet3", 等等...(如您所想)

提前致谢!

不是将变量 worksheet 分配给 workbook.add_worksheet(thename),而是使用一个名为 worksheets 的列表。当你通常做 worksheet = workbook.add_worksheet(thename) 时,做 worksheets.append(workbook.add_worksheet(thename))。然后使用 worksheets[-1] 访问您的最新工作表。

The problem is that the second time through the loop, python crashes when re-assigning the worksheet object above to a new worksheet.

当 运行 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()方法做的。