Qlik Sense Блог

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

Как распарсить файл 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 голос
Рейтинг статьи
qliksense-expert

Recent Posts

Доступ к системным данным и переменным в Extension Qlik Sense

Введение Иногда при создании расширения Qlik Sense вам необходимо получить доступ к системным данным. Это…

4 года ago

Как собрать с помощью PowerShell информацию по всем QVD из всех директорий?

// Команда, которая будет запускаться в Powershell на сервере LET vPowershellCommand = 'Get-ChildItem -Path ''lib://Data/QVDs''…

4 года ago

Как построить диаграмму Control Chart со скользящим средним в Qlik Sense?

Как построить диаграмму Control Chart со скользящим средним в Qlik Sense? В этой статье будет…

4 года ago

Как сделать чередование цвета в строках прямой таблицы Qlik Sense?

Как сделать чередование цвета в строках прямой таблицы Qlik Sense? Если порядок строк неважен, то…

4 года ago

Как создать Qlik Sense Extension с помощью Nebula.js и React

Обзор В этой серии руководств мы собираемся создать расширение Qlik Sense с использованием Nebula.js и…

4 года ago

Создание Extension с помощью qlik nebula.js и D3.js – Tutorial

Создание расширенного расширения визуализации с использованием Qlik Nebula.js и D3.js   В моем последнем посте я рассказал…

4 года ago

This website uses cookies.