【发布时间】:2020-03-10 05:55:41
【问题描述】:
在编程方面,我完全是个新手。我正在尝试编写一个 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 对象一个明确的名称),但我不知道如何进行。有什么好的方法可以解决这个问题?
【问题讨论】:
标签: python excel csv xlsxwriter worksheet