2016-05-22 84 views
0

寫值列表我的名單一個列表的Python。我想單獨列表作爲xlwt中的一行。Python的 - 在xlwt

datalist = [['India', 'Yes', '99%'], [['China', 'Yes', '89%'], ['Brazil', 'No', '90%']], ['Russia', 'Yes', '92%'], [['Germany', 'No', '97%'], ['Spain', 'No', '70%']]] 

首先我計算列表的總數 DEF計數(local_list):

def listcount(lst): 
    listsum = 0 
    for item in lst: 
    if not isinstance(l,list): 
     return 1 
    else: 
     listsum+= listcount(item) 

    return listsum 

excel_export.py

import xlwt 

book = xlwt.Workbook() 
sheet = book.add_sheet("PySheet1") 


for rownum in range(listcount(datalist)): 
    row = sheet.row(rownum) 

    for index, col in enumerate(datalist): 
    # do something similar like in listcount() 
    # check if instance is list if not then write the value 
    # rownum will act as a row 
    # column value will come from list item 

    row.write(row, col, val) 


book.save("test.xls") 

Samplesheet

enter image description here

如何在適當的行和列中寫入列表值?

+0

添加示例Excel輸出表。 –

+0

@ VedangMehta- Excel樣本添加! – MysticCodes

回答

1

這是很簡單的,一旦處理列表的怪異結構以及所有從一開始:

datalist = [['India', 'Yes', '99%'], [['China', 'Yes', '89%'], ['Brazil', 'No', '90%']], ['Russia', 'Yes', '92%'], 
      [['Germany', 'No', '97%'], ['Spain', 'No', '70%']]] 

new_datalist = [] 
for lst in datalist: 
    if isinstance(lst[0], list): 
     new_datalist.extend(lst) 
    else: 
     new_datalist.append(lst) 
datalist = new_datalist 

print(datalist) 

輸出:

[['India', 'Yes', '99%'], ['China', 'Yes', '89%'], ['Brazil', 'No', '90%'], ['Russia', 'Yes', '92%'], ['Germany', 'No', '97%'], ['Spain', 'No', '70%']] 

現在你可以寫值到以簡單的方式表格。你也可以擺脫listcount

+0

你是雨水製造商Alex Hall! – MysticCodes