Что Такое Excel Mashup И Кому Он Может Быть Полезен?



Краткое содержание поста в нескольких предложениях

  • Возможности Excel для удаленного доступа и совместной работы с документами сегодня, по крайней мере, сопоставимы с Google Docs;
  • Документ Excel можно интегрировать в HTML-страницы с сохранением значительной части функционала, т.е.

    формулы и сводные таблицы будут работать;

  • Я, как и любой другой человек, могу опубликовать свой документ Excel таким образом, чтобы ваше, как и любое другое, веб-приложение могло:
    1. нарисовать и открыть его, чтобы вручную ввести значения в ячейки,
    2. напрямую взаимодействовать с ним через JavaScript;
  • У Microsoft есть сайт, посвященный интеграции документов Excel в веб-приложения; Плагины jQuery также существуют в природе, чтобы сделать эту интеграцию быстрой и безболезненной;
  • С практической точки зрения пользователь получает следующие преимущества:
    1. JavaScript предоставляет широкие возможности для визуализации и анимации таблиц Excel, а также создания на их основе интерактивных приложений и информационных панелей;
    2. Умение работать с документами Excel на планшетах и мобильных устройствах;
    3. Удобный инструмент для создания рабочих прототипов систем управленческой отчетности.



Осторожное мнение автора о том, что Excel — это круто

Мне очень нравятся процессоры электронных таблиц за их простоту и универсальность.

База данных, инструменты моделирования и визуализации — все в одном пакете.

Разумеется, специализированные решения в каждом из этих направлений существенно превосходят настольные процессоры по функциональности и масштабируемости.

Но зачастую еще и по цене: речь идет не только о стоимости лицензий, но и о стоимости обучения сотрудников работе с новыми программами.

Настольные процессоры хороши тем, что они практически бесплатны, и ими в той или иной степени могут пользоваться большинство людей, когда-либо работавших за компьютером, от школьника до пенсионера.

Вот тут и возникает вопрос: нужна ли нам вся мощь специализированных систем для решения конкретной задачи? Или достаточно «наклепать табличку на коленке и пару схем в Excel»? Личный опыт подсказывает, что для решения подавляющего большинства разовых задач достаточно просто «склепать на коленках».

И только если вам нужно поставить на поток решение большого количества однородных задач, или переместить большие объемы данных, или сделать какую-то суперкрасивую интерактивную визуализацию, то есть смысл задуматься об инвестировании в специализированные системы.

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

Я убежден, что первое, что вы сделаете, это откроете Excel и начнете вводить в него свои данные и выполнять на них расчеты.

Почему Excel, а не Google Docs или, скажем, OpenOffice Calc? Да, потому что «здесь так принято».

Де-факто Excel был и остается стандартом для процессоров электронных таблиц.

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

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

У этих компаний просто не было выбора много лет назад, и сейчас нет серьезных оснований что-либо менять.

Однако следует признать, что Google Docs имеет хорошие шансы изменить этот баланс сил благодаря возможностям удаленного доступа и совместной работы с документами через Интернет. Мир меняется, и работа с документами в «облаках» превращается из экзотики в рутину.

Доступ к документам Excel через Интернет существует уже довольно давно, но только через SharePoint. Не буду вдаваться в подробности, отмечу лишь, что для «обычного» человека это было почти равносильно отсутствию доступа в сеть.

В результате «обычные» люди и молодые организации стали активно отдавать предпочтение Google Docs. С тех пор Microsoft приложила усилия, чтобы изменить ситуацию, и сегодня можно сказать, что офисные продукты были перенесены в облако.

Появились онлайн-версии продуктов Microsoft Office: бесплатные, но с урезанным функционалом.

За полные офлайн-версии все равно придется платить.

Оба интегрированы с OneDrive: облачным диском Microsoft (ранее называвшимся Skydrive).

Удивительно, но онлайн-версия Excel называется Excel Online. Некоторые интересные особенности этого продукта будут рассмотрены далее на примере одной из задач, которую я решал, когда работал консультантом по менеджменту.



Автор делится своим опытом создания Excel Mashup.

Итак, учитывая:
  1. Консультант разработал финансовую модель в Excel;
  2. Эту модель нужно представить очень серьезному человеку, финансовому директору очень крупного банка;
  3. Мой дядя очень занят, у него почти постоянно какие-то встречи, но он попросил меня сдать материалы заранее и сказал, что может посмотреть их в такси до аэропорта на своем iPad;
  4. Консультант понятия не имеет, какая операционная система и какие приложения стоят на этом iPad, и вообще есть ли у дяди склонность называть свой Android-планшет iPad;
  5. Консультант очень хочет, чтобы диаграммы были более красивыми и интерактивными, чем те, которые может создать Excel;
  6. Есть договоренность с клиентом не использовать макросы VBScript в Excel;
  7. Консультант также уверен, что мой дядя захочет поиграть с цифрами в модели, и нам нужно проследить, чтобы он ничего не сломал во время игры.

Вопрос: что мне послать дяде? Если это просто документ Excel, то ваш дядя, скорее всего, не сможет прочитать его на iPad. А если сможет, то есть риск, что он неправильно поймет, введет в модель неправильные цифры, сломает ее и останется с предубеждением, что модель не работает. В результате вам придется назначать новую встречу, искать свободные места в календаре дяди, и проект затянется еще на пару недель, а то и на месяц.

В данном случае было решено создать веб-страницу, которая шаг за шагом показывала бы моему дяде суть представляемой модели, подобно слайдам в PowerPoint. Главным отличием от слайдов была интерактивность: на некоторых этапах мой дядя мог добавлять в модель собственные значения параметров через HTML-формы или слайдеры jQuery. Новые значения переводились в ячейки документа Excel, связанные с формой или слайдером, после чего модель автоматически пересчитывалась.

Результаты пересчета практически мгновенно отображались на красивых диаграммах jQuery. Множество HTML-элементов и ячеек модели были реализованы на JavaScript. Используемые диаграммы взяты из Highcharts. Далее веб-страница и Excel-документ помещались в SharePoint клиента, а дяде присылали ссылку на страницу, которую он открывал в браузере на своем iPad (это действительно оказался iPad), предварительно подключившись к корпоративной сети через VPN. В этом примере у клиента был SharePoint, что упростило задачу с точки зрения конфиденциальности данных.

Если SharePoint нет, вам нужно будет загрузить документ в OneDrive, предоставить общедоступный доступ для чтения и подключиться к документу через токен.

Поскольку доступ является общедоступным, любой, кто знает токен, сможет прочитать документ. Самый надежный способ обеспечить конфиденциальность данных в этом случае — не загружать их в OneDrive. Другими словами, пустой шаблон Excel сохраняется в OneDrive, и данные в него считываются с собственного сервера по защищенным каналам в момент доступа, после загрузки в браузере страницы, в которую встроен этот пустой шаблон.

Менее надежный, но более простой в реализации метод — предоставить ссылку на страницу ограниченному кругу людей и предоставить доступ для чтения файла в течение заданного короткого времени (аналогично тому, как делаются вебинары).

Этот вариант подойдет, если вы не хотите разглашать данные, но тем не менее они не являются совершенно секретными.

Как оказалось, описанная выше реализация является практическим примером явления, называемого Excel Mashup. Суть в том, что документ Excel можно внедрить в веб-страницу и с помощью JavaScript обеспечить взаимодействие между элементами HTML и ячейками в документе Excel. Чтобы понять принципы создания гибридного приложения Excel, первое, что вы обычно делаете, это посещаете веб-сайт. www.excelmashup.com/jsapi .

Там вы можете найти различные сценарии использования API JavaScript, предоставляемого Excel. Добрые люди (например, этот человек: www.neowin.net/news/microsoft-offers-excelmashupcom-for-quick-web-apps ) пишут, что сайт запустила сама Microsoft. Однако подозрительно малое количество лайков и спорный дизайн вызывают сомнения в авторстве столь авторитетной компании, но это не столь важно.

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

Частично это связано с тем, что фрагменты кода, опубликованные на сайте www.excelmashup.com , не очень информативны: например, дано определение функции, но не указано, где она вызывается, какие скрипты необходимо предварительно подключить, какая должна быть HTML-разметка.

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

Другая проблема заключалась в том, что сценарий Microsoft, реализовавший класс Excel Web Access, конфликтовал с jQuery, в результате чего плагины вели себя ненадлежащим образом.

Для тех, кто не хочет наступать на эти грабли, вот несколько примеров того, как интегрировать Excel и HTML, написав несколько строк кода на JavaScript:

  • Пример 1 (самый простой) — встроить документ Excel с помощью токена и передать значения заданного пользователем диапазона ячеек в JSON. Источники здесь: jsfiddle.net/ugBe2
  • Пример 2 (более сложный) — внедрить документ Excel с помощью токена, затем с помощью HTML-формы изменить значение любой указанной пользователем ячейки, после чего книга будет пересчитана, а результаты заданного пользователем диапазона будут сохранены в формате JSON. Источники здесь: jsfiddle.net/RVjLD
  • Пример 3 (интерактивный с привязкой и инициализацией плагина jQuery) — есть три элемента, каждый из которых связан с соответствующей ячейкой в документе Excel. Два из них являются ползунками, связанными соответственно с ячейками B1 и B2. Третий — спидометр, связанный с ячейкой B3, который рассчитывается по формуле из B1 и B2. Как и в предыдущих примерах, документ Excel открывается с помощью токена.

    После завершения загрузки вызывается функция инициализации, которая присваивает ползункам и спидометру начальные значения, записанные в ячейках B1:B3. Когда пользователь «перемещает» ползунки, вызывается функция, которая записывает новое значение в ячейку, соответствующую ползунку (B1 или B2).

    После этого значение в ячейке В3 пересчитывается и передается на спидометр.

    Источники здесь: jsfiddle.net/KMtnc

Во всех трех примерах используется небольшая библиотека jQuery, специально разработанная для упрощения интеграции Excel и JavaScript. Я готов отдельно комментировать его содержание по мере возникновения конкретных вопросов.

Исходники библиотеки здесь: github.com/xls2web/x2w Обратите внимание, что эти примеры представляют собой чистый HTML-CSS-JavaScript. Если создать на их основе новый HTML-файл на локальной рабочей станции, подключенной к Интернету, и открыть его прямо в браузере без веб-сервера, результат не изменится.

Не во всех браузерах, конечно.

Не будем показывать пальцем, но этот трюк работал на последних версиях Chrome, Firefox, Safari и Opera, но не на одном очень популярном браузере (встроенный документ Excel не открывался).

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

Это, в свою очередь, открывает интересные возможности для «ниндзя» офисного Excel. Корпоративная политика информационной безопасности редко позволяет офисным сотрудникам устанавливать веб-сервер на свои рабочие станции, но почти у каждого, кому разрешено использовать Excel, есть браузеры и доступ в Интернет.

Ну и кому все это может понадобиться?

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

Имея непосредственное отношение к этому охраннику, я за свою жизнь сделал приличное количество моделей и прогнозов в Excel: различные расчеты доходности, скоринга, местоположения и прочего из мира финансов, отчетности и риск-менеджмента.

Каждый раз самым сложным моментом, как ни странно, оказывалась не разработка модели, а ее презентация начальству и клиентам: разным «опытным менеджерам», «сильным хозяйственникам», «железным леди» и «энергичным молодым людям».

«альфа-лидеры», которых так часто возносят на вершину корпоративной иерархии.

Но чтобы получить возможность отчитываться перед «небожителями», нужно еще пройти фильтр чуть менее удачливых седовласых и не очень советников, членов различных комитетов и прочих «экспертов».

Некоторые пытаются вникать в детали, другие говорят: «Объясните нам так, как будто вы объясняете пятилетнему ребенку».

Некоторые люди мыслят таблицами и цифрами, другие обладают образным мышлением, а третьим обязательно нужно потрогать руками, прежде чем делать какие-либо выводы.

Всех их объединяет одно: они чрезвычайно занятые люди и время, которое они уделяют вам, следует считать подарком судьбы.

В свое время я пришел к выводу, что, разговаривая с этими товарищами, я не представляю модель, а рассказываю историю.

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

В то же время нельзя пренебрегать математикой и логикой.

Среди ваших слушателей всегда найдется тот, кто захочет покопаться в деталях или рассмотреть какой-нибудь оригинальный сценарий именно в тот момент, когда вы меньше всего к этому готовы.

Таким образом, сделать набор материалов, подходящий каждому, – большое искусство.

Excel здесь необходим, но в одиночку им не справиться: его возможности как инструмента визуального сопровождения и контроля хода истории, которую вы рассказываете, слишком ограничены.

Обычно для этих целей используется PowerPoint, но проблема в интерактивности.

PowerPoint отлично подходит для рассказа вашей истории, пока никто не задает вопросы.

Если вам нужно на лету изменить предположения модели, PowerPoint больше не будет вашим помощником.

Можно, конечно, попробовать сделать презентацию интерактивной с помощью макросов VBScript, но лучше не пытаться.

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

И именно поэтому в рассказе «про моего дядю» одним из ограничений было неиспользование VBScript. С ростом популярности jQuery и количества полезных плагинов макетировать презентацию в HTML-CSS-JavaScript стало немного сложнее, чем в PowerPoint. А лично мне, например, это даже проще, поскольку найти и подключить хороший готовый шаблон HTML-CSS гораздо проще, чем приличную презентацию PowerPoint; возьмем тот же Bootstrap. HTML-CSS-JavaScript в гораздо меньшей степени страдают от описанных выше «болезней» PowerPoint. По интерактивности JavaScript опережает на 100 баллов.

Конечно, проверка документа в Chrome, Firefox, Safari, Opera и другом браузере не даст 100% гарантии, что клиент увидит презентацию именно такой, какой вы задумали.

Но это даст 90%, а это гораздо больше, чем может дать PowerPoint. В общем, стало возможным сделать интерактивную презентацию на основе вашей модели Excel. Есть еще одна область, где Excel Mashup можно эффективно использовать.

Большинство документов Excel, рассмотренных выше, предназначены для того, чтобы позволить менеджерам делать прогнозы и, в конечном итоге, принимать управленческие решения на основе анализа фактов и предположений.

Существуют также специализированные системы, предназначенные для этих целей.

Речь идет прежде всего о системах, которые позиционируют себя как информационные системы управления, управления эффективностью бизнеса и бизнес-аналитики.

По-русски их часто называют системами корпоративной или управленческой отчетности.

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

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

Прототип — это в целом работающая система, но недостаточно надежная и масштабируемая для использования в производстве.

Очень важно, чтобы прототип был создан быстро и без особых усилий.

Именно при создании прототипов использование Excel Mashup может стать эффективным.

Дело в том, что большинство пользователей и бизнес-аналитиков систем такого типа также являются продвинутыми пользователями Excel. А документ Excel — это то, что можно сделать относительно быстро.

Если вы бизнес-аналитик, умеющий делать Excel Mashup, это означает, что вы можете за относительно короткое время сделать прототип своего отчета или дашборда «на коленях», не привлекая программистов.

Такой прототип лучше любой постановки задачи объяснит команде разработчиков, что хочет получить заказчик.

Кроме того, при отсутствии критических функциональных недостатков заказчик может использовать прототип для решения своих задач до тех пор, пока «надежное и масштабируемое решение» не будет введено в эксплуатацию.

Быстрый прототип, довольный заказчик, взаимопонимание между аналитиками и разработчиками: что еще нужно для счастья руководителю проекта? В заключение хотелось бы отметить следующее: в целом перед нами простая в освоении и использовании вещь с определенным потенциалом.

Может быть полезно, особенно если вы много работаете с Excel. Что ж, шлю лучи уважения Microsoft, мне кажется, они движутся в правильном направлении.

Теги: #Excel Mashup #JavaScript API #мой опыт #JavaScript #api

Вместе с данным постом часто просматривают: