openpyxl如何在工作表中写入列表数据?

时间:2015-03-30 19:43:01

标签: python openpyxl

最近我使用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文件列?有控制输出的参考吗?

非常感谢

3 个答案:

答案 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)

这会将列表中的每一项附加在同一行的每一列上。

希望有帮助:)