2012-06-21 43 views
1

解析專欄中,我有以下的算法解析爲整數值列:在cell = row[0]使用openpyxl

def getddr(ws): 
address = [] 
col_name = 'C' 
start_row = 4 
end_row = ws.get_highest_row()+1 

range_expr = "{col}{start_row}:{col}{end_row}".format(col=col_name, start_row=start_row, end_row=end_row) 

for row in ws.iter_rows(range_string=range_expr): 
    print row 
    raw_input("enter to continue") 
    cell = row[0] 
    if str(cell.value).isdigit: 
     address.append(cell.value) 
    else: 
     continue 

return address 

這種崩潰說「IndexError:元組索引超出範圍」,我不知道這意味着什麼。 。我嘗試打印出行來查看它包含的內容,但它給我的是一組空括號。任何人都知道我錯過了什麼?

回答

3

這不太容易說出你有什麼問題,因爲沒有你正在處理的輸入數據。

但是我可以解釋你得到錯誤的原因是什麼,你必須走向哪個方向。列表row包含0個元素(row = []),因爲你不能說row[0] - 沒有行[0]。你必須改變的第一件事是檢查,多長時間你的清單,如果是長時足以讓其他的事情:

for row in ws.iter_rows(range_string=range_expr): 
    print row 
    raw_input("enter to continue") 
    if len(row) > 0: 
     cell = row[0] 
     if str(cell.value).isdigit: 
     address.append(cell.value) 
     else: 
     continue 

也就是說,你必須做反正第一步。

+0

儘管如此,在做完這些之後,它總是會打印出每行的空白頁面。我閱讀的Excel表有106行數據,每行打印出106個空白頁。程序是否有讀取文件的理由,但沒有看到文件中的任何數據? – zakparks31191