Answer the question
In order to leave comments, you need to log in
How to automate applicant questionnaires?
The recruitment agency maintains a database of candidates in MS Access. Now we are thinking about how to upload this database to Excel and somehow, with the help of this upload, we need to automatically generate several thousand resumes. Maybe there is some ready-made solution? Or a service?
Answer the question
In order to leave comments, you need to log in
I don’t know about the service, but I can advise you to use python.
1. Library for working with access
2. Library for working
with xcls files base and record file.
PS In the comments a little later I will throw off some tips.
UPD:
I sketched an example script with detailed comments.
If there are questions - write.
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)
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question