@ProgerFromGod

Как автоматизировать анкеты соискателей?

Кадровое агентство ведет базу данных кандидатов в MS Access. Теперь думаем о том, как эту базу выгрузить в Excel и как-то с помощью этой выгрузки надо сформировать автоматически несколько тысяч резюме. Может есть какое-то готовое решение? Или сервис?
  • Вопрос задан
  • 167 просмотров
Пригласить эксперта
Ответы на вопрос 1
AlexNest
@AlexNest
Работаю с Python/Django
Насчет сервиса не знаю, но могу посоветовать использовать python.
1. Библиотека для работы с акссессом
2. Библиотека для работы с xcls файлами
Да, придется немного разобраться с языком, но в остальном - достаточно "совместить" код из quickstart-гайдов - они процентов на 90 покрывают процессы с каждой из сторон - чтение из базы и запись файл.
P.S. В коменты чуть позже скину некоторые советы.
UPD:
Набросал примерный скрипт с подробными комментариями.
Если будут вопросы - пишите.
spoiler
import time
from os import path
import sqlite3 # Библиотека для работы с sqlite, не нужна
import openpyxl
# import pyodbc Установить библеотеку и раскоментить
def fetch_all_rows():
	"""
		Функция, выбирающая данные из БД
	"""
	con = sqlite3.connect('db.sqlite3') # Подключение к базе данных, заменить на 
										# conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Users\Ron\Desktop\Test\test_database.accdb;')
										# где C:\Users\Ron\Desktop\Test\test_database.accdb - путь до базы
	cur = con.cursor()
	cur.execute('select * from accounts_useraccount') # sql-запрос для выборки. Подставить свой для правильной выборки
	users = cur.fetchall() # Запись полученных данных в переменную
	cur.close() # Закрытие соединения
	return users

def generare_xcls_files(users):
	user_set = users # получение юзеров
	excel_file = openpyxl.load_workbook('template.xlsx') # Открытие шаблона, подставить свое имя

	employees_sheet = excel_file['Карточка'] # Выбор активной таблицы, подставить свое имя
 
	i = 1 # Переменная, в которую будет записываться номер цикла, нужно чисто для красивого имених xlsx файла
	for user in users: # Цикл по всем данным
		username = user[4] # Получение значение конкретного столбца таблицы. ВАЖНО - НУМИРАЦИЯ НАЧИНАЕТСЯ С 0 
		email = user[7] # Т.Е. ЧТОБЫ ВЫБРАТЬ ЗНАЧЕНИЕ ИЗ СТОЛБЦА EMAIL, КОТОРЫЙ ЯВЛЯЕТСЯ 8 ПО СЧЕТУ В ТАБЛИЦЕ, НУЖНО УКАЗАТЬ 7

		employees_sheet['B1'] = username #Запись полученного значения в конкретную ячейку
		employees_sheet['B2'] = email


		filename = f'{i}_{username}_{email}.xlsx' # Генерация имени файла, состоящего из нескольких значений (номер цикла и т.д.).
		filename = path.join('files', filename) # Добавление к имени файла пути до папки files, в одном со скриптом каталоге. ВАЖНО - папку нужно создать вручную.
		i+=1 # увеличение переменной на 1
		excel_file.save(filename=filename) # cохранение нового файла

if __name__ == '__main__':
	users = fetch_all_rows() # Запуск функций
	generare_xcls_files(users)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы