วนซ้ำแถวบนสุดของแผ่นงาน Excel

ฉันมีโค้ดส่วนต่อไปนี้ซึ่งใช้ openpyxl เพื่อค้นหาแถวบนสุดของสเปรดชีตและค้นหาองค์ประกอบแรกที่ไม่มีค่า มันส่งคืนข้อผิดพลาดต่อไปนี้เมื่อฉันเรียกใช้ มีวิธีที่ดีกว่าในการทำเช่นนี้หรือไม่? หรือฉันจะกำจัดข้อผิดพลาดได้อย่างไร?

val = "something"
j = 1
titleIndex = None
while val != None:
    val = lecture['%s1' % chr(ord('@') + j)].internal_value
    print val
    print j
    j += 1
else:
    titleIndex = '%s1' % chr(ord('@') + j - 1)

ไฟล์ "C:\Users\ecustodio\Documents\Python Scripts\ExcelIterate.py", บรรทัด 14, ใน set_title val = Lecture['%s1' % chr(ord('A') + j)].internal_value File "C :\Users\ecustodio\AppData\Local\Continuum\anaconda2\lib\site-packages\openpyxl\worksheet\worksheet.py", บรรทัด 345 ใน getitem min_col, min_row, max_col, max_row = range_boundaries (คีย์) ไฟล์ "C:\Users\ecustodio\AppData\Local\Continuum\anaconda2\lib\site-packages\openpyxl\utils\cell.py" บรรทัด 135 ใน range_boundaries Raise ValueError("{0} ไม่ใช่ พิกัดหรือช่วงที่ถูกต้อง") ValueError: {0} ไม่ใช่พิกัดหรือช่วงที่ถูกต้อง


person Ethan Custodio    schedule 19.09.2018    source แหล่งที่มา
comment
บรรทัดที่การย้อนกลับอ้างอิงคือบรรทัดที่ 5 ของโค้ด   -  person Ethan Custodio    schedule 19.09.2018
comment
ใช้ ws.iter_rows(min_row=1, max_row=1) หรือ ws[1]   -  person Charlie Clark    schedule 19.09.2018


คำตอบ (1)


เท่าที่ผมเห็นเป็นเส้นครับ

val = lecture['%s1' % chr(ord('A') + j)].internal_value

ที่ระบุในข้อความแสดงข้อผิดพลาดแตกต่างจากข้อความในรหัส:

val = lecture['%s1' % chr(ord('@') + j)].internal_value

โปรดตรวจสอบค่า '%s1' % chr(ord('@') + j) หรืออะไรก็ตามก่อนที่จะขอรายการจาก lecture และตรวจสอบให้แน่ใจว่า lecture ของคุณเป็นแผ่นงานที่มีอยู่แล้วจริงๆ

person StSav012    schedule 19.09.2018