Сегодня расскажу о том, как очень быстро и удобно загрузить данные из 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.

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

Я нажала кнопку Ок, а потом кнопку 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».

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

Нажимаем кнопку Ок, а потом кнопку 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ой функции:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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