我如何获得不同范围的细胞值?

我使用xlwt与Python来从某些东西获取一些数据,并写入一个xls文件,但我需要在不同范围的单元格中获得输出。 我有这样的代码: –

  #Here's the code for that : import xlwt from tempfile import TemporaryFile book = xlwt.Workbook() sheet1 = book.add_sheet('sheet1') a=[1,2,3,4,5] b=[6,7,8,9,10] c=[2,3,4,5,6] data = [a,b,c] for row, array in enumerate(data): for col, value in enumerate(array): sheet1.write(row, col, value) name = "table.xls" book.save(name) book.save(TemporaryFile()) 

输出( “table.xls”):

 #Output * ABCDE 1 1 2 3 4 5 2 6 7 8 9 10 3 2 3 4 5 6 

但是我想要这样的东西:

 # I want the values in different ranges of cells * ABCDEFGHI 1 1 6 2 3 4 5 6 2 2 7 3 3 8 4 4 9 5 5 10 

谁能帮我? 谢谢

我相信最简单的解决scheme之一是从itertools模块使用izip_longest ,这样:

 >>> a=[1,2,3,4,5] >>> b=[6,7,8,9,10] >>> c=[2,3,4,5,6] >>> c_ = [[x] for x in c] >>> c_ [[2], [3], [4], [5], [6]] >>> data = list(izip_longest(a,[],b,[],*c_, fillvalue='')) >>> for i in data: l = [] for j in i: l.append(j) print l [1, '', 6, '', 2, 3, 4, 5, 6] [2, '', 7, '', '', '', '', '', ''] [3, '', 8, '', '', '', '', '', ''] [4, '', 9, '', '', '', '', '', ''] [5, '', 10, '', '', '', '', '', ''] 

现在你可以很容易地把它写到你的excel文件中:

 for row, array in enumerate(data): for col, value in enumerate(array): sheet1.write(row, col, value) 

我假设你正在使用Python2