2017-03-07 5 views
0

엑셀 시트를 첨부했으며 아래 파이썬 코드를 사용하여 40보다 작은 점수를 얻거나 출석률이 75 미만인 롤 번호를 가져 오려고합니다. 퍼센트.파이썬을 사용하여 엑셀 시트에서 데이터를 가져 오는 데 문제가 있음

는하지만 코드를 실행할 때마다 나는 오류 메시지가 직면

Traceback (most recent call last): 87.0 File "C:/Users/Shubham Mishra/PycharmProjects/Python/jacc.py", line 11, in value1 = (int)(worksheet.cell(i, 2).value) ValueError: invalid literal for int() with base 10: 'Attendance'

import xlrd 
workbook=xlrd.open_workbook('log.xls') 
worksheet=workbook.sheet_by_index(0) 
print(worksheet.cell(1,2).value) 

i=1 
n=6 

for i in range(n): 
    value1 = (int)(worksheet.cell(i, 2).value) 
    value2 = (worksheet.cell(i, 3).value) 

    if ((value1<=75) or (value2<=40)): 
     print(worksheet.cell(i,1)) 

enter image description here

+0

그래도 고마워하지만 여전히 같은 오류가 발생합니다 ....하지만 명시 적 변환시 정정 해 주셔서 감사합니다. @ Giordano –

답변

1

코드의 가장 큰 문제는 range 기능은 그래서 0
시작이다 첫번째 루프의 반복은 다음과 같습니다 :

value1 = (int)(worksheet.cell(0, 2).value) 

"출석"문자열에 해당합니다.
이 오류가 발생했기 때문입니다. 당신은 이런 식으로 코드를 변경하는 생각해야

:

n=7 
for i in range(1, n): 
    value1 = (int)(worksheet.cell(i, 2).value) 
    value2 = (worksheet.cell(i, 3).value) 

    if ((value1<=75) or (value2<=40)): 
     print(worksheet.cell(i,1)) 

n은주의하시기 바랍니다은 7 같아 더 이상하지 6.

+0

예 coures !!! 감사 –

관련 문제