我在Python中使用xlwt
从某些内容获取一些数据并将其写入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&#34):
#Output
* A B C D E
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
* A B C D E F G H I
1 1 6 2 3 4 5 6
2 2 7
3 3 8
4 4 9
5 5 10
任何人都可以帮助我吗?感谢
答案 0 :(得分:1)
我认为最简单的解决方案之一是使用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