2013-06-12 2 views
1

Если у меня было несколько массивов, я хочу написать в файл excel с помощью Python, что бы лучше всего это сделать? Я попробовал несколько способов, и не могу понять это .... это пример так я пытался ... Im совершенно новый для этогоКак вы пишете несколько массивов в файл excel?

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 i,e in enumerate(data): 
    sheet1.write(i,1,e) 

name = "this.xls" 
book.save(name) 
book.save(TemporaryFile()) 
+2

Ваши данные имеют два измерения, которые предполагают, что вам нужен вложенный цикл. 'для строки, массив в перечислении (данные): для col, значение в перечислении (массив): sheet.write (row, col, value)' или что-то в этом роде. –

ответ

3

В соответствии Steven Rumbalski предложения,

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 = "this.xls" 
book.save(name) 
book.save(TemporaryFile()) 
0

Другим вариантом в вашем распоряжении является запись массивов в виде текстового файла с разделителями. Excel может легко их прочитать (просто откройте их, как лист Excel, и вы получите диалоговое окно импорта).

Вот код делает что -

path='foo.txt' 

a=[1,2,3,4,5] 
b=[6,7,8,9,10] 
c=[2,3,4,5,6] 

with open(path,'w') as table: 
    for row in zip(a,b,c): 
     for cell in row: 
      table.write(str(cell) + '\t') 
     table.write('\n') 

В этом случае массивы написаны по вертикали, а клетки с помощью табуляции (Excel обрабатывает вкладку избыточной без проблем).

Смежные вопросы