Добавить начальную структуру проекта с основными файлами и зависимостями
This commit is contained in:
54
main.py
Normal file
54
main.py
Normal 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}'")
|
||||
Reference in New Issue
Block a user