我如何获得不同范围的细胞值?
我使用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