2015-07-21 43 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

非常感謝。有效。 –

相關問題