import openpyxl as xl class SaveDataXLSX(): def __init__(self,file_path:str,sheet_name:str,data): wb = xl.load_workbook(filename=file_path) sheet = wb[sheet_name] max_row = sheet.max_row+2 for new_row,file in enumerate(data): sheet.cell(row=max_row+new_row,column=2,value=file.directory) sheet.cell(row=max_row+new_row,column=3,value=file.cad_number) sheet.cell(row=max_row+new_row,column=4,value=file.additional_info) sheet.cell(row=max_row+new_row,column=5,value=file.square) wb.save(file_path) def find_first_empty_row(file_path, sheet_name=None): wb = xl.load_workbook(filename=file_path, read_only=True) sheet = wb[sheet_name] if sheet_name else wb.active # Перебираем строки до первой пустой for row in sheet.iter_rows(): if all(cell.value is None for cell in row): return row[0].row # Возвращаем номер строки (1-based) # Если все строки заполнены, возвращаем следующую после последней return sheet.max_row + 1