5D is not a valid coordinate or range openpyxl

Рейтинг: 0Ответов: 1Опубликовано: 16.08.2023

Программа должна считывать значчения из 16 ячеек и получать среднее.

wbb = openpyxl.load_workbook(r'C:\Users\user\Desktop\Гаврилов-2D.xlsx')
sheets = wbb.sheetnames
for sheet in sheets:
    print(sheet)
sheet = wbb.active
rowm=sheet.max_row
colm=sheet.max_column
tabl=numpy.zeros((rowm, colm))
sumsq=0
for br in range (1, colm//4):
    for ni in range (1, rowm//4):
        sumsq=0
        for vwq in range(1, 16):
            mm=ni*4+vwq%4
            nn=br*4+int(vwq/4)
            msi=chr(mm+ord('0'))
            nsi=chr(nn+ord('A')-1)
            print(msi)
            print(nn, nsi)
            print (br,ni,vwq)
            dops=sheet[msi+nsi].value
            sumsq=sumsq+dops/16
        tabl[br, ni]=sumsq

Но выводит следующее:

5
4 D
1 1 1

Traceback (most recent call last):
  File "C:\Users\user\PycharmProjects\excelсокращение\main.py", line 52, in <module>
    print_hi('PyCharm')
  File "C:\Users\user\PycharmProjects\excelсокращение\main.py", line 39, in print_hi
    dops=sheet[msi+nsi].value
  File "C:\Users\user\PycharmProjects\excelсокращение\venv\lib\site-packages\openpyxl\worksheet\worksheet.py", line 295, in __getitem__
    min_col, min_row, max_col, max_row = range_boundaries(key)
  File "C:\Users\user\PycharmProjects\excelсокращение\venv\lib\site-packages\openpyxl\utils\cell.py", line 135, in range_boundaries
    raise ValueError(msg)
ValueError: 5D is not a valid coordinate or range

Почему такая ошибка и как сделать рабочее?

Ответы

▲ 2Принят

"5D" - это неправильное имя для диапазона в Excel, должно быть "D5", поэтому нужно изменить порядок подстрок:

dops=sheet[msi+nsi].value --> dops=sheet[nsi+msi].value