Как распарсить файл 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);