P
P
ProgerFromGod2022-01-18 21:32:21
excel
ProgerFromGod, 2022-01-18 21:32:21

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

1 answer(s)
A
Alexander Nesterov, 2022-01-18
@AlexNest

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.

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)

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question