Описание задачи

Необходимо разработать макрос, программу или скрипт для работы с двумя типами Excel-файлов («БазаДанных» и «Данные»). Основная цель - решить проблему зависания 1,5-гигабайтных файлов за счет выгрузки повторяющихся блоков данных во внешнюю базу данных (на выбор исполнителя, например, SQLite, Access или другую). Работа делится на два этапа со временными ограничениями.

Этап 1. Создание базы данных из исходника

  • Пользователь выбирает Excel-файл типа «БазаДанных» (аналог файлов с 20 наборами данных, где один набор - это 7 столбцов, например, C-I, K-Q и так далее).
  • Скрипт преобразует содержимое всего файла (отделяя каждый из 20 наборов в структуру БД) так, чтобы доступ к данным стал значительно быстрее.
  • Ограничение по времени: Процедура конвертации всего файла не должна занимать более 30 минут.

Этап 2. Быстрая выгрузка данных и фиксация в заданной области

  • Пользователь открывает Excel-файл типа «Данные» и нужный лист, в котором к нему служат ранее сохраненные данные из БД.
  • Результат работы: значения для  специфических строк и столбцов (например, рабочая область FM:FR, начиная от строки 39 вниз до конца данных).
  • Данные в столбцах FK и FL должны фиксироваться «как есть» (один раз загружены значения больше не изменяются). В остальных столбцах реализуется гибкая связь - как удобнее, но с условием: 20 строк не более 10 секунд при подгрузке из готовой БД, напрямую не открывая конечную базу.
  • Механизм при окончании первого заполнения: при смене целевой книги или листа подтяжка новых данных происходит по описанному правилу.

Ключевые технические нюансы

  • Файлы большого объема (1-1,5 ГБ). База данных создается только один раз в «потоке работы».
  • Манипуляции с бд происходят в автоматическом режиме без явного просмотра таблиц исполнителем заказчиком без доступа к конфиденциальным лиева, инструкции только коду изменяющим список компании.