我编写了一个代码,它将从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()
如果我在控制台上单独打印数据,我可以看到数据是正确的。唯一的问题是为什么要覆盖。
答案 0 :(得分:1)
您正在覆盖第一个工作表,因为每次调用write_data
时,您都要实例化一个新的Workbook
对象,然后在最后保存更改。通过在导入后移动以下行来创建该函数之外的Workbook
对象:
book = xlwt.Workbook(encoding="utf-8")