Язык исполнения: js База данных: clickhouse Необходимо создать загрузчик файла excel в базу clickhouse. Форматы файлов: xlx, xlsx. 1. Построение шаблона. Есть excel файл с шаблоном полей. Нужно загрузить файл и в ответ отдать json структуру. [ {"title":"Мест", "name":"field", "type":string", units":""}, {"title":"Скважина", "name":"well", "type":string", units":""}, {"title":"Date", "name":"date", "type":date", units":""}, {"title":"Пласт", "name":"stratum", "type":string", units":""} ] 2. Проверка данных. Есть excel файл с данными и шаблон (1 шаг). Нужно сформировать отчет их отличий(колонок в данных и в шаблоне). В отчете указать - колонки которые есть в шаблоне но отстутствуют в файле и - колонки которые есть в файле но отстутствуют в шаблоне. { ext_tpl_cols: ['имя_колонки1', '2', '3', ...], ext_data_cols: ['имя_колонки1', '2', '3', ...] } 3. Подбор шаблона. Есть excel файл с данными и набор шаблонов (1 шаг). Нужно подобрать самый подходящий шаблон для данного файла. Совпадение проверять по колонкам. Если минимальных совпадений несколько, вернуть все такие шаблоны. [{tpl1}, {tpl2}, {}, ...] 4. Загрузка данных по шаблону. Есть excel файл с данными по шаблону (1 шаг) и шаблон (шаг 1). Отправляем на сервер запрос - путь к базе данных clickhouse(http://user@pass:host:port/sub_bpath), - имя целевой таблицы, - excel файл данных, - шаблон (шаг 1). В результате работы в базе должна появится таблица с указанным именем (или со случайным именем), а вней данные из файла эксель. Если структура файла отличчается от шаблона, то брать только пересекающиеся поля. При возникновении ошибки отправить в ответ текст ошибки и строку (если это возможно). В ответ вернуть имя созданной таблицы (или поданой). Внимание! Даты в экселе забиты без указания времени, поэтому в js грузятся криво. Учтите это при работе.