ValueError: ENone не является действительной координатой или диапазоном - PullRequest
0 голосов
/ 05 октября 2019

Я новичок в python и пытаюсь создать что-то, что создает некоторый код для меня в другом файле на основе данных в электронной таблице. В моем тестовом проекте все хорошо, но по какой-то причине при использовании другого файла Excel я получаю ошибку, которую не могу понять:

   Traceback (most recent call last):
File "demo.py", line 76, in <module>
    MakeFile()
  File "demo.py", line 28, in MakeFile
    step_type = sheet[f"D{row.value}"]
  File "C:....\Python\Python37-32\lib\site-packages\openpyxl\worksheet\worksheet.py", line 287, in __getitem__
    min_col, min_row, max_col, max_row = range_boundaries(key)
  File "C:...\Python\Python37-32\lib\site-packages\openpyxl\utils\cell.py", line 137, in range_boundaries
    raise ValueError(msg)
ValueError: ENone is not a valid coordinate or range

Мой код:

def MakeFile():
xl_filepath = "C:...Desktop/myfile.xlsx"
wb = load_workbook(xl_filepath)
sheet = wb.active
with open("testfile2.py", "w") as f:

    f.write("some stuff before loop")        

    for row in sheet["A"]:
        step_type = sheet[f"D{row.value}"]
        if row.value is None:
            print("End of Steps")
            #raise Exception("Cell is blank")
        else:
            if step_type.value == "text":
                f.write("somestuff")                   
                print(row.value, step_type.value)

            elif step_type.value == "animation":
                f.write("somestuff")
                print(row.value, step_type.value)

            else:
                f.write("somestuff")
                print(row.value, step_type.value)

    f.write("somestuff after the loop")

    f.close()
 MakeFile()

По существуцикл завершается и выполняет все, что я ожидаю, за исключением того, что в конце он выдает эту ошибку.

  ValueError: ENone is not a valid coordinate or range

и не выполняет запись после, например, "somestuff after the loop". Он закрывает файл и сохраняет то, что сделал иначе ...

Пример моей рабочей книги Пример электронной таблицы

Я просматриваю столбец "A" и дляна каждом шаге (указанном числом) я беру соответствующее значение «D», а затем что-то делаю с ним в зависимости от того, «текст», «анимация» или «что-нибудь еще». Он также хорошо обрабатывает дополнительные значения, например, если в строке есть «video», тогда он идет и выполняет то, что ожидается с помощью «else».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...