2015-02-09 58 views
1

我想在xlwt中重新创建一个xlsxwriter程序。 我有问题写一行。有人可以帮我用xlwt模块吗?我用枚举找到了许多使用xlwt的代码,但我对xlwt不太熟悉。我遇到的问题是,xlwt在第一个单元格中将整个列表写入一个字符串,所以我最终得到一列数据。 xlsxwriter将列表中的每个项目写入其单独的单元格中,这就是我想要用xlwt做的事情。如果有人能指引我正确的方向,将不胜感激。感谢python如何从xlsxwriter移植到xlwt

这是我的代码:

def xlsxwriter_res(result): 
    workbook = xlsxwriter.Workbook('filename.xlsx') 

    for key,value in result.items(): 
     worksheet = workbook.add_worksheet(key) 
     row, col = 0, 0 

     for line in value: 
      worksheet.write_row(row, col, line) ### Writes each item in list in separate cell 
      row += 1 

    workbook.close() 


def xlwt_res(result): 
    workbook = xlwt.Workbook(encoding="utf-8") 

    for key,value in result.items(): 
     worksheet = workbook.add_sheet(key) 
     row, col = 0, 0 

     for line in value: 
      worksheet.write(row, col, line) ### Writes the whole list as string in one cell 
      row += 1 

    workbook.save('filename.xls') 

回答

3

试一下:

import xlwt 


def xlwt_res(result): 
    workbook = xlwt.Workbook(encoding="utf-8") 

    for key, value in result.items(): 
     worksheet = workbook.add_sheet(key) 
     row = 0 # we assign 'col' later instead 

     for line in value: 
      # we're going to iterate over the line object 
      # and write directly to a cell, incrementing the column id 
      for col, cell in enumerate(line): 
       worksheet.write(row, col, cell) # writes the list contents just like xlsxwriter.write_row! 
      row += 1 

    workbook.save('filename.xls') 


xlwt_res({'one': ["just one element"], 'two': ["that's a list", "did you know it"], 'three': ["let's", "have", "3"]}) 

因此,无论xlwtxlsxwriter产生相同的结果:
enter image description here

+0

我可以看到现在枚举。非常感谢,这按预期工作。 – jes516 2015-02-09 20:46:09

+0

@ jes516不客气:) – 2015-02-09 20:47:04