Load from excel qlikview

Сегодня расскажу о том, как очень быстро и удобно загрузить данные из MS EXCEL. При этом данные из xls-файлов можно сразу преобразовывать при загрузке через стандартные настройки, что сильно экономит время при разработке.

Источник данных QlikView

Пример 1. Загрузка простой таблицы из Excel

Для того, чтобы загрузить таблицу из MS EXCEL, заходим в редактор скрипта (Edit Script) в QlikView и создаем новую вкладку.

На ней пишем название будущей таблицы «январь».

После этого я нажала кнопку Table File и прописала путь к xls-файлу, из которого буду загружать данные. Открылось окно загрузки.QlikView File Wizard

  1. В опции Tables выбираем вкладку xls-файла. Она у меня называется «январь».
  2. Опция Header Siz» отвечает за то, с какой строки данные будут загружаться. Так как у меня данные начинаются сразу с первой строки, то я оставила значение None.
  3. В опции Labels я выбрала значение Embedded Labels, чтобы первая строка загружаемых данных была заголовком.
  4. После этого я нажала кнопку Finish.

На вкладке появился текст скрипта:

январь:

LOAD

Дата,

[Код товара],

[Наименование товара],

Цена,

Количество,

Сумма

FROM

[C:UsersPolinaDownloads001_Tips_ATK01_Быстрая выгрузка из ExcelTEST.xlsx]

(ooxml, embedded labels, table is январь);

Я нажала кнопку Ок, а потом кнопку Reload на панели управления. Теперь данные из Excel загружены в QlikView.

После этого создаем таблицу с данными:

  1. Щелкаем по листу правой кнопкой мыши, выбираем пункт New Object, затем выбираем Table Box.QlikView Table Box
  2. В опции Show Fields from Table выбираем название загруженной таблицы «январь».QlikView Table Box
  1. Нажимаем кнопку Add All, чтобы все поля, которые относятся к этой таблице, были показаныQlikView Table Box
  2. Для сохранения порядка полей таким же, как и при загрузке данных, нажимаем Load Order.
  3. Затем нажимаем Ок.

В результате у меня получилась таблица как и была в таблице Excel.

Источник данных QlikView

Пример 2. Загрузка таблицы из Excel в другом формате

Источник данных QlikView

Повторяем все шаги для загрузки данных, что и в первом примере, только после первого окна кнопку Finish не нажимаем, а нажимаем кнопку Next.

Передо мной открылось следующее окно загрузки.Транспонирование данных QlikView

  1. Я нажала кнопку Enable Transformation Step

Транспонирование данных QlikView

  1. После этого захожу на вкладку Rotate. Здесь я могу выбрать способ трансформации данныхТранспонирование данных QlikView
  2. Нажимаю кнопку Transpose, и данные у меня изменили формат так, как мне нужно:Транспонирование данных QlikView
  3. Если, например, мне нужно не все столбцы или строки загружать, я иду на вкладку Garbage.Транспонирование данных QlikView
  4. Выделяю столбец или строчку, которые мне не нужны, и нажимаю кнопку Delete Marked.

А вот теперь можно нажать кнопку Next.  Передо мной открылось окно загрузки и нажимаем кнопку «Finish».

На вкладке появился текст скрипта:

январь2:

LOAD Дата,

[Код товара],

[Наименование товара],

Цена,

Количество,

Сумма

FROM

[C:UsersPolinaDownloads001_Tips_ATK01_Быстрая выгрузка из ExcelTEST.xlsx]

(ooxml, embedded labels, table is январь2, filters(

Transpose()

));

Нажимаем кнопку Ок, а потом кнопку Reload на панели управления.

Теперь данные из xls-файла загружены в QlikView.

После этого я создаю таблицу с данными, как и в первом примере.

  1. Щелкаем по таблице правой кнопкой мыши и выбираем пункт Properties.
  2. Заходим на вкладку Number и для всех полей таблицы поставим флаг Override Document Settings.
  3. Для полей «Код товара», «Цена», «Количество» и «Сумма» я поставила формат Integer, а для поля «Дата» формат «Date».
  4. Нажимаю кнопку «Ок».

В результате у меня получилась таблица, как и в Excel-файле.

Пример 3. Загрузка данных одинакового формата из нескольких вкладок xls-файла.

Источник данных QlikView

Для начала нужно поменять уровень доступа для макросов документа с Limit Module Script to Safe Mode на Give System Access to Module Script.

QlikView Safe Mode

И создаем функцию для сохранения названий вкладок Excel-файла. Для этого я:

  1. Зашла на панели управления QlikView в Settings.
  2. Выбрала пункт Document Properties и зашла на вкладку Triggers.
  3. Выбрала в опции Document Event Triggers пункт OnOpen и нажала кнопку Add Actoin(s).
  4. Появилось окно для добавления действий на открытие документа.
  5. Нажала кнопку Add, выбрала в Action Type тип действия External , а в Action Type — действие Run Macro.Запуск макроса QlikView
  1. Нажала кнопку Ок.
  2. Ввела в поле Macro Name название макроса
  3. Нажала кнопку Edit Module.
  4. Ввела в окне ***Ready*** текст 1ой функции:

Function ModuleSecurity()

ActiveDocument.SetCurrentModuleSecurity 2

End Function

Эта функция отвечает за изменение уровня доступа для макросов документа.

  1. Ввела в окне ***Ready*** текст 2ой функции:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

Function NameSheets(P)

Dim Book1_WS, Workbook

Dim Sheet1_WS, Worksheet

Dim SN, string

Dim i, int

Sn=«»

Set objExcel = CreateObject(«Excel.Application»)

Set Book1_WS = objExcel.Application.Workbooks.Open(P)

For i=1 to Book1_WS.Sheets.Count

Set Sheet1_WS = Book1_WS.Sheets(i)

if SN = «» then

SN = Sheet1_WS.Name

else

SN = SN+«;»+Sheet1_WS.Name

end if

Next

Book1_WS.Close

NameSheets = SN

END FUNCTION

Эта функция возвращает название вкладки Excel-файла.

  1. После этого я нажала кнопку Cheсk и кнопку Ok.
  2. Нажала кнопку Ok, чтобы сохранить изменения в окне Actions.
  3. Нажала кнопку Ok, чтобы сохранить изменения в окне Document properties.

Захожу в редактор скрипта (Edit Script) в QlikView и создаю новую вкладку.

  1. Объявляю переменную vSecurity, она отвечает за замену доступа к макросу

LET vSecurity       = ModuleSecurity();

  1. С помощью переменной vPath выделяю часть пути к папке, где лежит Excel-файл

LET vPath                             = left(DocumentPath(),Index(DocumentPath(),,2)1);

  1. В переменную vRootFile записываю полный путь к Excel-файлу и его название

LET vRootFile       = ‘$(vPath)Быстрая выгрузка из ExcelTEST.xlsx’;

  1. Объявляю переменную vRoot, которая будет возвращать названия вкладок Excel-файла, которые нужно загрузить

    LET vRoot                 = NameSheets(‘$(vRootFile)’);

  1. В переменную vFile записываю вырезанное из пути название Excel-файла

    LET vFile = Replace(Mid(‘$(vRootFile)’,Index(‘$(vRootFile)’,», SubStringCount(‘$(vRootFile)‘,’))+1),‘.xlsx’,»);

  1. В переменной vLen считаю количество вкладок Excel-файла

    LET vLen = SubStringCount(‘$(vRoot)’,‘;’)+1;

  1. С помощью оператора управления ForNEXT создаю цикл. Цикл идет от 1 и до количества вкладок Excel-файла:
  1. Внутри цикла выделяется название вкладки Excel-файла и загружаются все данные на ней. И так до тех пор, пока данные на всех вкладках не будут загружены во временную таблицу tmp:

    LET vSheetName = SubField(‘$(vRoot)’,‘;’,$(i));

  2. Создаем таблицу «tmp»и загружаем в нее данные tmp:

LOAD

*

From

[$(vFile).xlsx]

(ooxml, embedded labels, table is $(vSheetName));

  1. Функция TRACE выдает сообщение, что выгрузка завершена:

TRACE;

TRACE Выгрузка Завершена;

  1. Нажимаю кнопку Ок, а потом кнопку Reload на панели управления.

В результате получается выполнения скрипта получается общая таблица с данными с трех вкладок Excel-файла.

Источник данных QlikViewЭтот способ очень удобен тем, что не нужно загружать данные поочередно с каждой вкладки стандартным приемом, который  был описан в первом примере. Здесь неважно, какое у нас количество вкладок, главное, чтобы их формат был одинаковым, иначе таблица будет выглядеть некорректно.

По своему усмотрению можно также загружать не все данные, а только часть, как показано во втором примере.

Файл для скачивания – пример загрузки данных из Excel, который я разбирала в посте.

На этом все. Пользуйтесь этими способами и комментируйте здесь.

QlikView принимает электронную таблицу Excel для анализа данных простым действием перетаскивания. Вам нужно открыть главное окно QlikView и перетащить файл Excel в интерфейс. Он автоматически создаст лист с данными Excel.

Выберите файл Excel

Оставьте главное окно QlikView открытым и найдите файл Excel, который вы хотите использовать.

1_excel_load_data_drag

Выберите источник данных

При перетаскивании файла Excel в главное окно появляется мастер файлов. Тип файла уже выбран в качестве Excel. В разделе « Метки» выберите « Встроенные метки» . Нажмите «Следующий шаг», чтобы продолжить.

2_excel_file_wizard

Загрузить скрипт

Появится скрипт загрузки, который показывает команду, которая загружает данные в документ QlikView. Эта команда может быть отредактирована.

3_excel_load_script

Теперь мастер Excel предлагает сохранить файл в виде расширения * .qvw. Он просит выбрать место, где вам нужно сохранить файл. Нажмите «Следующий шаг», чтобы продолжить. Теперь пришло время увидеть данные, загруженные из файла Excel. Мы используем объект листа Table Box для отображения этих данных.

Создать таблицу Box

Поле таблицы – это объект листа для отображения доступных данных в виде таблицы. Он вызывается из меню Layout → New Sheet Object → Table Box .

4_table_box_option

Нажав Далее, мы получаем возможность выбрать поля из окна таблицы. Вы можете использовать кнопки повышения или понижения для изменения порядка полей.

5_Table_box_fields

Таблица данных таблицы

По завершении вышеупомянутого шага появится объект листа таблицы таблицы, который показывает данные, которые считываются из файла Excel.


QlikView accepts Excel spreadsheet for data analysis by simple drag and drop action. You need to open the QlikView main window and drag and drop the excel file into the interface. It will automatically create the sheet showing the excel data.

Select the Excel file

Keep the main window of QlikView open and browse for the excel file you want to use.

1_excel_load_data_drag

Select a Data Source

On dropping the excel file into the main window, the File wizard appears. The File Type is already chosen as Excel. Under Labels, choose Embedded Labels. Click «Next step» to proceed.

2_excel_file_wizard

Load Script

The Load script appears which shows the command that loads the data into the QlikView document. This command can be edited.

3_excel_load_script

Now, the Excel wizard prompts to save the file in the form of *.qvw file extension. It asks to select a location where you need to save the file. Click «Next step» to proceed. Now it is time to see the data that is loaded from the Excel file. We use a Table Box sheet object to display this data.

Create Table Box

The Table Box is a sheet object to display the available data as a table. It is invoked from the menu Layout → New Sheet Object → Table Box.

4_table_box_option

On clicking Next, we get the option to choose the fields from the Table Box. You can use the Promote or Demote buttons to rearrange the fields.

5_Table_box_fields

Table Box Data

On completing the above step, the Table Box Sheet Object appears which shows the data that is read from the Excel file.

6_table_box_result

Recipe Objective: How to add a table from an excel sheet to the QlikView window?

Your browser does not support the video element.

Step 1:

Open QlikView 12 software.  By default, the start page will open. To avoid the start page while launching QlikView, untick the check box at the bottom of the window.

Step 2:

Open the Main sheet document->Go to menu bar->Click on File menu->Go to Edit Script->Data tab->select Table Files.

Step 3:

Now select the excel file from the folder; here, a file named «Sample-sales-data-excel» is selected->select 50 orders from tables->Finish-> a code will be displayed in the edit script window->click on Ok.

Learn How to Build a Multi Class Text Classification Model using BERT

Step 4:

Now click on Reload button from the Menu bar->Save the file with the name of choice at a location/folder, the data will get loaded.

Step 5:

Now go to Main Sheet->Right click->New sheet object->Table box->select 50 orders->from show fields from table option.

Step 6:

From the Available Fields tab->Click on Add all->all fields will get added->click on Apply and Ok->Table will get added in the Main sheet/QlikView document.

Основная причина того, что ваш код не загружает какие-либо данные, связана с формой tt переменная.

Когда ваш внутренний цикл выполняется, он оценивает tt (обозначается $(tt)), что затем приводит к оценке:

'DIVISION$' AND 'REGION$'

Что приводит к нулю, так как это всего лишь две строки.

Если вы слегка измените свое утверждение, от LET в SET и удалите ANDтогда внутренний цикл будет работать. Например:

SET tt = 'DIVISION$', 'REGION$';

Однако теперь это также означает, что ваш внутренний цикл будет выполняться для каждого значения в tt для обеих рабочих книг. Это означает, что если у вас нет REGION лист в вашем DIVISION книга, тогда загрузка не удастся.

Чтобы избежать этого, вы можете немного реструктурировать свой сценарий, чтобы у вас была контрольная таблица, в которой указаны файлы и таблицы для загрузки. Пример, который я подготовил, показан ниже:

FileList:
LOAD * INLINE [
    FileName, TableName
    REGION.XLS, REGION$
    DIVISION.XLS, DIVISION$
];


FOR i = 0 TO NoOfRows('FileList') - 1

    LET FileName = peek('FileName', i, 'FileList'); 
    LET TableName = peek('TableName', i, 'FileList'); 

    div_reg_table:
    LOAD
        *
    FROM '$(FileName)'
    (biff, embedded labels, table is '$(TableName)');

NEXT

Если у вас есть только два файла DIVISION.XLS а также REGION.XLS тогда, возможно, стоит просто использовать две отдельные загрузки одну за другой и полностью удалить цикл for. Например:

div_reg_table:
LOAD
    *
FROM [DIVISION.XLS]
(biff, embedded labels, table is DIVISION$)
WHERE DivisionName = 'AA';

LOAD
    *
FROM [REGION.XLS]
(biff, embedded labels, table is REGION$)
WHERE RegionName = 'BB';

Понравилась статья? Поделить с друзьями:
  • Load excel to access
  • Listen to the dialogue and complete it with the words below one word is extra
  • Load excel file oracle
  • Listen to the conversation and write only one missing word into each sentence текст
  • Load data from excel