Search code examples
pythonexcelxlwt

Python xlwt cell overwrite


I'm trying to parse the list "words" into one column, but I'm having a problem with cell overwrite.

import xlwt

wb=xlwt.Workbook()
sh=wb.add_sheet('sheet1')
sh.write(0,0,'words')

words = ["amazing","awesome","great"]
cols=['A']

for num in range(1,4):
     row = sh.row(num)
     for index,col in enumerate(cols):
             value = words[index]+str(num)
             row.write(index,value)   
wb.save('example.xls')

Solution

  • Use sh.write() just as you did for the header row. Use enumerate() to provide the row number, starting from 1 (see second argument to enumerate()):

    import xlwt
    
    wb=xlwt.Workbook()
    sh=wb.add_sheet('sheet1')
    sh.write(0,0,'words')
    
    words = ["amazing", "awesome", "great"]
    
    for row, word in enumerate(words, start=1):
        sh.write(row, 0, word)
    #    sh.write(row, 0, '{}{}'.format(word, row))    # use this if you want the row number appended
    
    wb.save('example.xls')