在Excel中添加另一个工作表

时间:2015-07-21 11:32:22

标签: python python-2.7

我编写了一个代码,它将从2台服务器获取信息并存储在2个不同的词典中。我想将两个工作表中的数据写入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 个答案:

答案 0 :(得分:1)

您正在覆盖第一个工作表,因为每次调用write_data时,您都要实例化一个新的Workbook对象,然后在最后保存更改。通过在导入后移动以下行来创建该函数之外的Workbook对象:

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