Как распарсить файл Excel в Qlik Sense по полям

Задача: Есть файл Excel, в котором название поля состоит из двух строк, причем в первой строке ячейки объединены. А во второй строке некоторые колонки одинаково названы. Нужно взять префикс из первой строки. В таблице 100 колонок.

// Загружаем название столбцов
[Название столбцов]:
First 2
LOAD *
FROM [lib://Проект Qlik Sense/Файл Excel c колонками.xlsm]
(ooxml, no labels, header is 3 lines, table is Данные);

Set пНазваниеБлока = '';

For i=1 to NoOfFields('Название столбцов')
	
    Let пКодПоля 		= FieldName($(i),'Название столбцов');
    Let пНазваниеБлока 	= if(not IsNull(Peek(FieldName($(i),'Название столбцов'),0,'Название столбцов')),Peek(FieldName($(i),'Название столбцов'),0,'Название столбцов'),'$(пНазваниеБлока)');
    Let пНазваниеБлока 	= replace('$(пНазваниеБлока)','Общая часть','');
    Let пНазваниеПоля 	= Peek(FieldName($(i),'Название столбцов'),1,'Название столбцов');
    
    Let пСтрокаДляLoad 	= '[$(пКодПоля)] As ['&trim('$(пНазваниеБлока) $(пНазваниеПоля)')&']';
    
    [Столбцы LOAD]:
    Load '$(i)'						As [Столбец ID],
         '$(пКодПоля)'				As [Код поля],
         '$(пНазваниеБлока)'		As [Название блока],
         '$(пНазваниеПоля)'			As [Название столбца для LOAD],
         '$(пСтрокаДляLoad)'		As [Строка Для Load]
    AutoGenerate 1;
    
Next i

DROP Table [Название столбцов];

//Собираем поля в строку LOAD
NoConcatenate
[Строка Для Load]:
LOAD Concat([Строка Для Load],',',[Столбец ID]) as [Строка Для Load С Разделителем]
Resident [Столбцы LOAD]
;

Drop Table [Столбцы LOAD];

Let vLoadFromText = '
LOAD '&Peek('Строка Для Load С Разделителем',0,'Строка Для Load')&'
FROM [lib://Проект Qlik Sense/Файл Excel c колонками.xlsm]
(ooxml, no labels, header is 5 lines, table is Данные);
';

Данные:
$(vLoadFromText);
5 1 голос
Рейтинг статьи

Подписаться
Уведомление о
guest
0 комментариев
Встроенная Обратная Связь
Просмотр всех комментариев
0
Оставьте, пожалуйста, комментарий!x