Python 我如何在非';是否使用XlsxWriter显式命名?
说到编程,我完全是个新手。我正在尝试编写一个Python3程序,它将根据CSV文件的内容生成一个Excel工作簿。到目前为止,我了解如何创建工作簿,并且能够根据CSV文件的内容动态创建工作表,但是我无法写入每个工作表 注意,在下面的示例中,我提供了一个静态列表,但我的程序根据CSV文件的内容动态创建了一个名称列表:将附加到列表中的名称数量从1到60不等,具体取决于所讨论的分析Python 我如何在非';是否使用XlsxWriter显式命名?,python,excel,csv,xlsxwriter,worksheet,Python,Excel,Csv,Xlsxwriter,Worksheet,说到编程,我完全是个新手。我正在尝试编写一个Python3程序,它将根据CSV文件的内容生成一个Excel工作簿。到目前为止,我了解如何创建工作簿,并且能够根据CSV文件的内容动态创建工作表,但是我无法写入每个工作表 注意,在下面的示例中,我提供了一个静态列表,但我的程序根据CSV文件的内容动态创建了一个名称列表:将附加到列表中的名称数量从1到60不等,具体取决于所讨论的分析 import xlsxwriter workbook = xlsxwriter.Workbook('C:\\Users
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会指向工作簿.close()作为问题的根源
但是,如果我排除了在每个工作表中尝试向单元格A1写入“Hello!”的那一行,那么程序将按照我的预期运行:我的桌面上有一个Workbook.xlsx,它有4个工作表,分别命名为a、b、c和d
for循环对我来说似乎是一个不错的选择,因为我的程序需要处理各种CSV格式(我宁愿编写一个程序来处理我实验室每个分析的数据,而不是每个分析的程序)
我的希望是,通过像我那样使用sheet.write(),Python会知道我想要写入我刚刚创建的工作表(即,我认为工作表将在循环的每次迭代中充当每个工作表的名称,尽管每个工作表都显式地命名为新名称)
这里的问题是迭代,我知道这与我在write()步骤中如何引用每个工作表有关(因为我没有给任何工作表对象一个明确的名称),但我不知道如何继续。解决这个问题的好方法是什么?您是否尝试过类似于
工作表的方法。编写(0,0,'Hello')
而不是工作表。写('A1','Hello')我不确定你的代码到底出了什么问题,但我可以告诉你: 我完全复制了您的代码(除了将路径更改为我的桌面),并且工作正常 我相信你的问题可能是三件事之一:
XlsxWriter
Workbook.xlsx
的文件,该文件已损坏或导致某些问题(在其他程序中打开)XlsxWriter
:
在命令提示符下运行pip卸载XlsxWriter
,然后运行pip安装XlsxWriter
workbook=xlsxwriter.workbook('C:\\Users\\Jabocus\\Desktop\\Workbook2.xlsx')
谢谢你花时间看这个。至少,我的思维过程已经足够好了,这让我松了一口气。@Jacobus,那么你能理解它吗?不,我实际上是想对最初的评论进行扩展,但当我按enter键转到一个新的行时,它发布了。在过去的10分钟里,我试图编辑我的评论,但更改没有花费太多的时间。不足的是3。是正确的:我的示例代码不是我试图修复的代码。这应该是类似的。我将采纳您的建议,并尝试以我的工作示例代码为基础。好的,很高兴它有所帮助。是的,我已经在我正在使用的XlsxWriter测试文件上完成了这项工作,但我不认为我正在使用的坐标语法是问题的一部分。