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Все файлы обработаны.")