首页 > 解决方案 > 如何遍历未使用 XlsxWriter 明确命名的 Excel 工作表?

问题描述

在编程方面,我完全是个新手。我正在尝试编写一个 Python 3 程序,该程序将根据 CSV 文件的内容生成一个 Excel 工作簿。到目前为止,我了解如何创建工作簿,并且能够根据 CSV 文件的内容动态创建工作表,但是我在写入每个单独的工作表时遇到了麻烦。

请注意,在下面的示例中,我提供了一个静态列表,但我的程序根据 CSV 文件的内容动态创建了一个名称列表:将附加到列表中的名称数量从 1 到 60 不等,取决于所讨论的化验。

import xlsxwriter

workbook = xlsxwriter.Workbook('C:\\Users\\Jabocus\\Desktop\\Workbook.xlsx')
list = ["a", "b", "c", "d"]

for x in list:
    worksheet = workbook.add_worksheet(x)
    worksheet.write("A1", "Hello!")

workbook.close()

如果我按照上面显示的方式运行程序,我会得到一个 SyntaxError,并且 IPython 指向 workbook.close() 作为问题的根源。

但是,如果我排除我尝试写“Hello!”的行 在每个工作表中的单元格 A1 中,程序按我的预期运行:我的桌面上最终有 Workbook.xlsx,它有 4 个名为 a、b、c 和 d 的工作表。

for 循环对我来说似乎是一个不错的选择,因为我的程序将需要处理各种 CSV 格式(我宁愿编写一个程序来处理来自我实验室的每个化验的数据,而不是为每个化验编写一个程序)。

我希望通过以我所做的方式使用 worksheet.write(),Python 会知道我想要写入我刚刚创建的工作表(即我认为工作表将在每次迭代期间充当每个工作表的名称尽管明确地将每个工作表命名为新的,但循环)。

感觉迭代是这里的问题,我知道这与我在 write() 步骤中尝试引用每个 Worksheet 的方式有关(因为我没有为任何 Worksheet 对象提供明确的名称),但我不知道如何进行。我可以解决这个问题的好方法是什么?

标签: pythonexcelcsvxlsxwriterworksheet

解决方案


你有没有尝试过类似的东西worksheet.write(0, 0, 'Hello') 而不是worksheet.write('A1', 'Hello')


推荐阅读