2013-10-05 7 views
0

Я пытаюсь записать код в ячейки A1, A2, A3 и A4 в Excel. Однако, когда я использую его, я получаю сообщение об ошибкеPython Запись в Excel Итеративно

Invalid Cell coordinates (A)

«A» остается постоянная, но «я» изменения с каждым повторением. Как исправить проблему в строке 27? Я хочу, чтобы Python принимал «A» в качестве ссылки на столбцы.

Это была линия 27:

ws.cell('A',i).value = "The price of", symbolslist[i], " is ", price" 

и весь мой сценарий Python:

from openpyxl import Workbook 

import urllib 
import re 

from openpyxl.cell import get_column_letter 

wb = Workbook() 

dest_filename = r'empty_book.xlsx' 

ws = wb.create_sheet() 

ws.title = 'Stocks' 
symbolslist = ["aapl","spy","goog","nflx"] 

i=0 
while i<len(symbolslist): 
    #counts each object as 1 in the list 
    url = "http://finance.yahoo.com/q?s="+symbolslist[i]+"&q1=1" 
    htmlfile = urllib.urlopen(url) 
    htmltext = htmlfile.read() 
    regex = '<span id="yfs_l84_'+symbolslist[i]+'">(.+?)</span>' 
    pattern = re.compile(regex) 
    price = re.findall(pattern,htmltext) 
    print "The price of", symbolslist[i], " is ", price 
    ws.cell(1,i+1).value = "The price of" + symbolslist[i] + " is " + price 
    i+=1 


wb.save(filename = dest_filename) 

Я также использую это как reference, от openpyxl.

+0

' 'A', ул (я +) == 'A1'' –

+0

Где я могу подключить это? Любой, почему я хочу, чтобы «Ai» всегда был A1? –

+0

Я подключил его вот так: ws.cell ('A' + str (i) == 'A1'). Value = "Цена", symbollist [i], "is", цена И я получаю это сообщение об ошибке ниже. Вы должны указать значение для «координаты» для «строки» * и «столбца». –

ответ

2

EDIT

Ваш я = 0 на первом проходе, но не нулевой столбец. Кроме того, я думаю, что ячейка ищет индекс строки, который является числом, а не символом «A».

ws.cell(1,i+1).value = "The price of" + symbolslist[i] + " is " + price 
+0

Я заменил строку 27 этим, и у меня есть остановка Powershell. Работает ли код для вас? –

+0

Нечетный, теперь он говорит, что объект «int» не имеет атрибута «replace». –

+0

Это то, что у меня есть для линии. 'code' ws.cell (1, i + 1) .value = «Цена» + symbollist [i] + «is» + «price» 'code' Однако я все еще получаю объект'int ', не имеет атрибута' replace 'error. –

0

Это неправильное использование ws.cell(). У меня была ошибка, говорящая, что объект «int» не имеет атрибута «replace», но после того, как я изменил строку на следующую, ошибка исчезла: ws.cell (row = 1, column = i + 1) .value = " цена»СИЛ + (symbolslist [я]) + "является" ул (цена) +

Кстати, я использую Python 2.7 и последняя версия openpyxl

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