2015-07-21 3 views
0

Я написал код, который будет извлекать информацию с 2-х серверов и хранить в двух разных словарях. Я хотел написать оба данных в 2 листах в excel. К сожалению, я не вижу первого листа. Второй лист всегда перекрывает первый лист. См. Код, который я написал ниже.Добавление другого листа в excel

Примечание: Из соображений безопасности я не поставил фактический код, кроме аналогичного кода в блоке.

import xlwt 

def dicttest1(): 
    d1 = {} 
    string = 'UK_PDL_HE' 
    j=0 
    for i in range (1,10): 
     d1[i] = j 
     j+=1 
    write_data(d1,string,1) 

def dicttest2(): 
    d2 = {} 
    string = 'UK_DTH_HE' 
    j=100 
    for i in range (1,10): 
     d2[i] = j 
    write_data(d2,string,2) 

def write_data(dictionary,string,sheetdata): 
    book = xlwt.Workbook(encoding="utf-8") 
    sheet = "sheet" + str(sheetdata) 
    print sheet 
    sheet = book.add_sheet(string) 
    sheet.write(0, 0, "#") 
    sheet.write(0, 1, "Component") 
    sheet.write(0,2,'Version') 
    i=0 
    for key in dictionary: 
     print key, dictionary[key] 
     sheet.write(i+1, 0, i+1) 
     sheet.write(i+1, 1, key) 
     sheet.write(i+1, 2, dictionary[key]) 
     i+=1 
    book.save("test_Version.xls") 

if __name__ == "__main__": 
    dicttest1() 
    dicttest2() 

Если я распечатаю данные отдельно на консоли, я вижу, что данные верны. Единственная проблема заключается в том, почему она переписывается.

ответ

1

Вы переписываете первый рабочий лист, потому что каждый раз, когда вы вызываете write_data, вы создаете новый объект Workbook, а затем сохраняете изменения в конце. Создайте объект Workbook за пределами этой функции, переместив следующую строку после импорта:

book = xlwt.Workbook(encoding="utf-8") 
+0

Большое спасибо. Это сработало. –