2015-04-15 4 views
0

Я хочу импортировать список python, чтобы преуспеть. Мой пример кода:import list to excel

import win32com.client as win32 

excel = win32.gencache.EnsureDispatch('Excel.Application') 
excel.Visible = 1 
wb = excel.Workbooks.Add() 
ws = wb.Worksheets("Sheet1") 

list1 =("a","b","c","c","c","c","c","c","c","c") 

ws.Range("B1:B10").Value = list1 

Как я должен изменить тип песни1 использовать код ws.Range («B1: B10») Значение = песни1.? Какой список можно использовать в файле excel?

+0

List1 - это кортеж, вы должны использовать квадратные скобки для списка: 'list1 = [" a "," b "..." c "]'. Не уверен, если это имеет значение. Чтобы решить эту проблему, вы можете использовать или использовать библиотеку 'xlwt'. –

+0

спасибо @EdSmith, на самом деле я хочу, чтобы мой список стал таким же: list1 = ((«a»,), («b»,), («c»,), («c»,), («c»,), («c»,) .....) 'Легко писать в excel. И я не хочу использовать другую библиотеку, кроме win32. Это проблема! –

ответ

0

Похоже, что этот post может делать то, что вам нужно, обернув ваше заявление диапазона в функции как:

def writeLinesToExcel(ws,lines): 
    ws.Range("A1:"+chr(len(lines)+96).upper()+str(len(lines[0]))).Value=lines 

Тогда вы можете вызвать writeLineToExcel(ws,list1). Вы также можете использовать такие вещи, как [["a"], ["b"]], по-видимому ... По вашему вопросу, я не уверен, что это работает для вас. Если данные достаточно просто, вы можете просто использовать цикл,

def writeRowsToExcel(ws,col,rows): 

    for i,l in enumerate(rows): 
     ws.Cells(col,i)= l 

затем вызвать writeRowsToExcel(ws, col, rows). Другие posts предполагают, что это будет медленным и использовать другие библиотеки, такие как xlwt.

+0

thanks @Ed Smith, На самом деле, я не хочу создавать цикл для записи данных в файл excel, потому что он будет медленным, если мои данные большие. Поэтому я пробую другой метод, сначала создаю кортеж для списка mys, а затем напишу в файл excel 'для i в списке:' 'new_list.append ((i,))' 'ws.Range (B1 , B10) = new_list ' Как вы думаете, это нормально? –

+0

У меня нет машины для проверки Windows, похоже, синтаксис, который вы используете, должен работать на основе других сообщений - есть ли у вас последняя версия win32com? Извините, понял, что ссылка выше нас неправа, я обновил. –

+0

Скачайте его по ссылке [ссылка win32com] (http://sourceforge.net/projects/pywin32/files/pywin32/) –