2015-01-05 2 views
0

Заранее спасибо! У меня есть 3 списка с текстом, каждый из которых содержит 8 точек данных.Как написать список в соответствующие столбцы

Мне нужен выход в столбцы A, C, D таблицы Excel.

Я использую pyExcelerator, самая большая проблема заключается в том, когда я повторно запускаю программу, она заменяет исходную программу. Я просто хочу, чтобы результаты добавились к существующей электронной таблице excel. Как a вариант в file.write.

indexlist = list(); 
    indexlist2 = list(); 
    indexlist3 = list(); 
    #keep adding new element at same speed 
    indexlist.append(a); 
    indexlist2.append(b); 
    indexlist3.append(c); 


#create the new excel spreadsheet 
w = Workbook() 
ws = w.add_sheet('sheet') 

for i in range(len(indexlist)): 
    ws.write(i+1,3,str(indexlist[i])) 
for j in range(len(indexlist2)): 
    ws.write(j+1,2,str(indexlist2[j])) 
for k in range(len(indexlist3)): 
    ws.write(k+1,0,str(indexlist3[k])) 
+0

Я не знаком с pyExcelator, но ваши строки 1-индексированы, а столбцы индексируются 0 - это правильно? Можете ли вы разместить больше своего кода - что такое 'ws' например? – vikramls

+0

У вас есть 3 списка из 8 целых чисел, а не текста. Что такое 'indexlist',' indexlist2' и т. Д.? Почему последний цикл 'for' вызывает ws.write (k + 1,0, str (indexlist3 [k])) вместо' ws.write (k + 1,1, str (indexlist3 [k])) '? – martineau

+0

см. Обновления, список не имеет значения, я помещаю текст в список, используя функцию добавления. –

ответ

0

Он переписывает значения в строках, так как I, J и K являются номера строк вы пишете, и они начинаются с 0 каждый раз при запуске программы. Что вам нужно сделать, так это открыть файл для чтения ели, посмотрите, существует ли лист, если он не будет продолжать записываться в него в первый раз, если лист существует, посмотрите, что такое номер последней строки (имеется функция nrows, доступная в xlrd), закройте файл и откройте его для записи. Затем добавьте это значение в i + 1, j + 1 и k + 1 в ваших операторах ws.write.