Добавить начальную структуру проекта с основными файлами и зависимостями

This commit is contained in:
Dmitry
2025-12-28 17:40:25 +03:00
commit 904bc48138
8 changed files with 398 additions and 0 deletions

54
main.py Normal file
View File

@@ -0,0 +1,54 @@
import pandas as pd
import openpyxl
import os
from tqdm import tqdm
from datetime import datetime
DB_FILE = 'files/source.xlsx'
TEMPLATE_FILE = 'files/template.xlsx'
OUTPUT_FOLDER = 'files/output/'
MAPPING = {
'Дата МО': 'Q1',
'Время МО': 'Q2',
'Номер направления': 'A13',
'Фамилия, имя, отчество': 'D21',
'Дата рождения': 'D22',
'Структурное подразделение': 'F26',
'Должность работника ': 'F27',
'''Наименование вредных производственных факторов или фидов работ (приложение к приказу Минздрава РФ от 28.01.2021 №29Н)''': 'F30'
}
if not os.path.exists(OUTPUT_FOLDER):
os.makedirs(OUTPUT_FOLDER)
df = pd.read_excel(DB_FILE)
print(f"Всего сотрудников в списке: {len(df)}")
for index, row in tqdm(df.iterrows(), total=len(df), desc="Обработка"):
wb = openpyxl.load_workbook(TEMPLATE_FILE)
ws = wb.active
for excel_col, cell_address in MAPPING.items():
value = row.get(excel_col, "")
if pd.isna(value):
value = ""
if cell_address == 'A13':
ws[cell_address] = f"НАПРАВЛЕНИЕ № {value}" # type: ignore
elif isinstance(value, (datetime, pd.Timestamp)):
ws[cell_address] = value.strftime('%d.%m.%Y') # type: ignore
else:
ws[cell_address] = str(value) # type: ignore
num = str(row.get('Номер направления', index + 1)) # type: ignore
fio = str(row.get('Фамилия, имя, отчество')).strip().replace(' ', '_')
file_name = f"Направление_№{num}_{fio}.xlsx"
save_path = os.path.join(OUTPUT_FOLDER, file_name)
wb.save(save_path)
print(f"\nГотово! Файлы сохранены в '{OUTPUT_FOLDER}'")