Загрузка данных из Excel с произвольным форматом

Есть возможность через внешнее действие загрузить некий Excel и получить его данные для обработки в SQL процедуре. 

Создаем форму и в saveItem вызываем внешнее действие в SELECT 2: 

 select 'io.parseExcel' type, '/uploads/1.xlsx' path, 
    	'' listName, 'parseExcel1' spCallback

Здесь мы указали, что необходимо обработать файл с путем из параметра path с первого листа (имя листа можно указать в параметре listName).

В процедуре SQL коллбека мы можем разобрать содежимое файла: 

CREATE PROCEDURE [dbo].[outer_parseExcel1]
	@parameters ExtendedDictionaryParameter readonly,
	@data nvarchar(128) = '',
	@username nvarchar(128) = ''
AS
BEGIN
	insert into as_temp1 ([key], title, value, value2)
    select * from @parameters 	
END

Для удобства создана временная таблица temp и в нее пишется вся выгрузка колонок:

Помимо этих данных будут также переданы входные параметры (type, path, listName, spCallback, langID) и служебные выходные параметры (result, msg).

ВАЖНО. Не нужно рассматривать этот способ как основной способ загрузки данных из внешних источников. Гораздо лучше использовать excel с жесткой структурой (сильно упрощает последующую обработку и анализ данных). См. импорт-экспорт Excel

Страница-источник на сайте falconspace.ru