Загрузка данных


from pathlib import Path
import xlwings as xw

# ==========================================
# Листы, которые НЕ нужно обрабатывать
# ==========================================
SKIP_SHEETS = [
    # "Свод",
    # "Список",
]

# ==========================================
# Числовой формат
# ==========================================
NUMBER_RANGES = [
    "D26:L26",
    "N26",
    "D44:E44",
    "H44",
    "J44",
    "B176:M176",
    "B182:M182",
    "C205:Z205",
    "C221:BP221",
    "C236:I236",
    "B243:C244",
    "E243:K244",
    "C260",
    "E260",
    "G260:J260",
    "L260",
    "M260",
    "G272:I272",
    "K272",
]

# ==========================================
# Процентный формат
# ==========================================
PERCENT_RANGES = [
    "M19:M26",
    "O26",
    "K253:K260",
    "D253:D260",
    "F253:F260",
    "J272",
    "L272",
]

NUMBER_FORMAT = "0"
PERCENT_FORMAT = "0%"

folder = Path(__file__).parent

files = list(folder.glob("*.xlsx"))

if not files:
    print("Excel-файлы не найдены.")
    exit()

app = xw.App(visible=False)
app.display_alerts = False
app.screen_updating = False

try:
    for file in files:
        print(f"\nОбработка: {file.name}")

        try:
            wb = app.books.open(str(file))

            for sheet in wb.sheets:

                if sheet.name in SKIP_SHEETS:
                    print(f"  Пропуск листа: {sheet.name}")
                    continue

                # Числовой формат
                for rng in NUMBER_RANGES:
                    sheet.range(rng).number_format = NUMBER_FORMAT

                # Процентный формат
                for rng in PERCENT_RANGES:
                    sheet.range(rng).number_format = PERCENT_FORMAT

            wb.save()
            wb.close()

            print("  ✓ Готово")

        except Exception as e:
            print(f"  ❌ Ошибка: {e}")

finally:
    app.quit()

print("\nВсе файлы обработаны.")