最近我使用openpyxl来处理一些科学数据,当我将列表数据写入excel文件时,我遇到了问题。
datalist[row][col]
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')
当它完成时,似乎它只能将列表写入xlsx文件的第一个col,如何将同一个我的datalist col分配到同一个工作表中的同一个xlsx文件列?有控制输出的参考吗?
非常感谢
答案 0 :(得分:3)
使用ws.append(row)
时,必须按顺序或作为生成器插入整个传递。我不了解您的数据结构,但以下内容应该有效。
for row in datalist:
ws.append(row)
如果这还不够,请提供有关数据结构的更多信息。
答案 1 :(得分:1)
您只是在写数据的第一列(col = 0)。要包含所有数据,请添加内部循环:
for i in range(row):
for j in range(col):
ws_write.append([datalist[i][j]])
wb.save(filename='data.xlsx')
或者,一次写下整行:
for i in range(row):
ws_write.append([datalist[i]])
wb.save(filename='data.xlsx')
我不知道该包以确保输出语法正确。
编辑:看完这个: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')
答案 2 :(得分:1)
如果我正确理解了您的问题,那么您将需要以下内容:
myList = ['First','Second','Third','Fourth','Fifth']
wb = xl.load_workbook('test.xlsx')
ws= wb.active
ws.append(myList)
这会将列表中的每一项附加在同一行的每一列上。
希望有帮助:)