我正在使用openpyxl处理一些科学数据,当我将列表数据写入excel文件时,我遇到了问题。
wb = openpyxl.Workbook(optimized_write=Ture)
ws_write = wb.create_sheet(0)
for i in range(row):
ws_write.append([datalist[i][0]])
wb.save(filename='data.xlsx')
Run Code Online (Sandbox Code Playgroud)
完成后,似乎只能将列表写入 xlsx 文件的第一列。如何将数据列表的相同列分配给同一张表中 xlsx 文件的相同列?有没有控制输出的参考?
使用时,ws.append(row)您必须将整个过程作为序列或生成器插入。我不明白你的数据结构,但像下面这样的东西应该可以工作。
for row in datalist:
ws.append(row)
Run Code Online (Sandbox Code Playgroud)
如果这还不够,请提供有关数据结构的更多信息。
您只写入数据的第一列 (col=0)。为了包含所有数据,请添加一个内部循环:
for i in range(row):
for j in range(col):
ws_write.append([datalist[i][j]])
wb.save(filename='data.xlsx')
Run Code Online (Sandbox Code Playgroud)
或者,一次写入整行:
for i in range(row):
ws_write.append([datalist[i]])
wb.save(filename='data.xlsx')
Run Code Online (Sandbox Code Playgroud)
我不知道那个包可以确保输出语法是正确的。
编辑:看了这个:Insert row into Excel Spreadsheet using openpyxl in Python后 ,您似乎需要执行以下操作:
for i in range(row):
for j in range(col):
ws_cell(row=i,col=j).value = datalist[i][j]
wb.save(filename='data.xlsx')
Run Code Online (Sandbox Code Playgroud)