Как выполнить анализ данных, написав всего одну строчку кода

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

    У пользователей появляются новые возможности детального анализа данных из грида в привычном им Excel. Менеджер, бухгалтер или финансовый аналитик теперь могут получить табличные данные из грида в Excel быстро и точно.
    Много лет назад я начинал свою карьеру в IT с автоматизации предприятий, используя решения от 1C. У одного из крупных клиентов готовился годовой отчет и что-то не сходилось. Меня попросили написать несколько специальных запросов для локализации расхождений. Думаю, что бухгалтерия могла бы обойтись без приглашения специалиста и сэкономить время и деньги, если бы у них был хороший экспорт в Excel. Разумеется, у этого подхода есть ограничения. Например, объем анализируемых данных может быть слишком большим для Excel.

    Благодаря новому экспорту у пользователей появляются новые возможности глубокого анализа и визуализации данных с использованием Excel. К сожалению, я не помню точно, что именно было не так, когда не сходился тот годовой отчет. Поэтому для демонстрации возможностей нового экспорта представим, что имеется приложение, в котором есть данные о продажах товаров магазина за определенный период в виде таблицы. Менеджер хочет узнать, какие товары приносят больший вклад в выручку, те выполнить ABC-анализ. Как вы догадались, в рассматриваемом приложении ABC-анализ не реализован, но зато есть кнопка, по нажатию которой зовется метод view.ExportToXls(..).

    Вот так выглядит это приложение. В таблице показан учет проданных со скидками товаров. Знакомые с нашей линейкой контролов наверняка узнают модуль TableView из главной демки XtraGrid. Да, это она, поэтому при желании всегда можно в точности повторить этот пример на вашей стороне.



    После экспорта получим эти данные в Excel. Таблица содержит примерно 2200 строк. Скорость экспорта на моем ноутбуке составила примерно 7тыс строк в секунду.



    У нас есть цена, количество и скидка. Добавим столбец F с формулой для стоимости.



    Теперь нам надо получить оборот по каждому товару. Проще всего это сделать сводной таблицей. В строках сводной таблицы будет колонка Product, в значениях — колонка Amount, у которой выбран стандартный процессинг % от общей суммы.



    Осталось отсортировать по второму столбцу и посчитать нарастающий итог.



    Зеленым выделены товары, которые сформировали 80% выручки, что и требовалось найти. Таким образом, мы показали, что с новым экспортом пользователи могут без помощи разработчиков выполнить глубокий анализ данных в Excel. В рассмотренном примере был выполнен ABC-анализ данных по продажам 80 товаров из исходной таблицы, содержащей 2155 строк. Анализируемая таблица может содержать значительно больше данных.
    В этой статье анализ данных выполнялся в Microsoft Excel 2013, но можно использовать любую другую программу для работы с электронными таблицами. Кстати, у DevExpress есть контрол для работы с электронными таблицами. Называется Spreadsheet Control. Новый экспорт вошел в бету релиза 14.2, которая уже доступна.
    • +9
    • 11,1k
    • 8

    Developer Soft

    73,79

    Компания

    Поделиться публикацией
    Комментарии 8
      +5
      Как выполнить анализ данных, написав всего одну строчку кода

      никак
        +2
        Предложенный «анализ» таки можно выполнить одной строкой в SQL. Но до реального анализа ему будет далеко.
          +2
          Конечно можно, но не любой менеджер это осилит. Придется звать специалиста который напишет и запустит запрос. В статье я хочу донести простую мысль: конечные пользователи могут и сами анализировать данные из грида. Все что для этого нужно, предусмотреть в вашем приложении возможность экспорта данных(та самая одна строчка кода)
        +1
        В чем смысл этого поста? В том, что вы добавили экспорт в XLS?
          +3
          Самая конфетка кроется в качественных изменениях. Экспорт гридов в экселевые форматы был и раньше, только он был другим. Экспортированный в XLS/XLSX грид раньше был тупо табличкой с текстом. То есть элементы грида экспортировались как некие визуальные, а не семантические сущности.

          Теперь же экспорт именно семантический. То есть сгруппированные ряды в гриде на выходе становятся сгруппированными рядами в Excel. Если в гриде есть summary, то оно и в Excel будет некоей summary величиной (и Excel пересчитает summary, если пользователь в таблице что-то поменяет). Денежно-финансовые величины, к примеру, экспортируются теперь не просто как текст, а именно как денежные величины и Excel будет с ними работать как с денежными величинами, а не текстовыми строками. Ну и так далее.
          +3
          Наши гриды любят конечные пользователи за то что в них можно выполнять сортировки группировки, фильтрации, выделять цветом строчки в соответствии с правилами. Иногда бывает нужно сделать более сложный анализ данных. Для этого можно воспользоваться новым экспортом. Я привел пример.
            0
            Группировки, сортировки и фильтры в гридах нужны вовсе не для анализа, а для удобства использования. Например менеджеру нужно видеть последние несобранные заказы, это можно сделать два ему грид.

            А что касается анализа, то Excel умеет подключаться к куче разных источников, в том числе базам данных напрямую или к odata сервису. Его наличие в программе было бы в разы полезнее, чем умение сохранять таблицу в виде excel.
              +1
              Да, Excel умеет подключаться к разным источникам, но
              во-первых, пользователь это не всегда осилит. Надо знать куда его подключать ввести правильно адрес источника данных.
              во-вторых, возможности биндинга нашего грида больше чем у Excel, и может возникнуть ситуация когда экспорт будет единственным способом получить данные в экселе.

              А еще, когда мы начинили переписывать экспорты, мне советовали сделать экспорт фичей не грида а источника данных. Мы не стали так делать потому что у источника много чего нет, например там нет информации о фиксированных колонках, о том как форматировать колонки, саммари, формат рулесов (раскрашивание по правилам). Так, вот, если прибиндите источник в экселе у Вас ничего этого не будет, а в экспортированном документе — подхватится из грида.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое