У меня есть книга и один лист в книге:
wb = openpyxl.load_workbook("path/to/workbook.xlsx")
ws = wb.worksheets[0]
Как я могу вернуть все ячейки, содержащие ошибку в электронной таблице? Я знаю, что могут быть разные типы ошибок (ошибка формулы, N/As, ошибка проверки данных и т. д.), просто пытаясь увидеть, что возможно в библиотеке Python.
Это может быть так. Чтение файла excel, взятие только значений ячеек и сравнение их со списком ошибок.
test.xlsx
from openpyxl import load_workbook
ERROR_CODES = ('#NULL!', '#DIV/0!', '#VALUE!', '#REF!', '#NAME?', '#NUM!', '#N/A')
wb = load_workbook('test.xlsx', data_only=True)
ws = wb.active
cell_error = [ws.cell(row=i, column=j) for j in range(1, ws.max_column + 1)
for i in range(1, ws.max_row + 1)
if ws.cell(row=i, column=j).value in ERROR_CODES]
print(cell_error)
-----------------------------------------
[<Cell 'Лист1'.A3>, <Cell 'Лист1'.C1>, <Cell 'Лист1'.C2>]
@michal111 Да, есть проверка на валидность openpyxl.readthedocs.io/en/latest/…. Есть примеры, вам просто нужно будет добавить свои правила проверки.
Похоже на то, что нужно, но частично потому, что это не приведет к ошибкам проверки данных - есть идеи, можно ли это сделать? (отредактировать ответ?)