Тверской государственный университет
Опубликован: 13.09.2006 | Доступ: свободный | Студентов: 5132 / 387 | Оценка: 4.23 / 3.83 | Длительность: 28:12:00
Специальности: Программист, Менеджер
Лекция 10:

Возможности и применение Office Web-компонентов

Создание Office Web Components (OWC) - набора компонентов, реализующих основную функциональность Excel, которые могут работать на Web-страницах - явилось одним из наиболее важных достижений фирмы Microsoft в области компонентного программирования. Создание высококачественных компонентов различными фирмами - производителями программных продуктов и построение собственных решений на базе готовых, многократно используемых и проверенных компонентов - в этом суть компонентного программирования. Компоненты OWC созданы на основе Com-технологии и являются Com-объектами или, как теперь принято говорить, элементами ActiveX. Как и всякие элементы ActiveX, они могут использоваться в различных приложениях - контейнерах ActiveX, если последние построены в соответствии со стандартами, принятыми для подобных контейнеров.

Все основные приложения Microsoft, такие как Internet Explorer, начиная с версии 4, Visual Basic, Visual C++, FrontPage, InterDev, Office UserForms и другие приложения от Microsoft и от других фирм могут служить контейнерами для компонентов OWC. Конечно, несмотря на стандарт, контейнер контейнеру рознь, и возможны определенные особенности в работе того или иного контейнера с данными компонентами.

В название рассматриваемых компонентов включены два термина - Office и Web. Первый отражает тот факт, что эти компоненты вошли в состав Office 2000 и являются важной частью этого пакета. Второй термин подчеркивает, что компоненты могут с успехом работать на Web-страницах - точнее, что Internet Explorer является одним из допустимых контейнеров этих элементов. Вместе с тем следует понимать, что компоненты OWC могут работать не только на Web-страницах: их можно также с успехом использовать в собственных решениях, не связанных с документами Office 2000.

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

  1. Создание собственного решения с встроенной функциональностью Excel, без использования при этом самого Excel и других приложений, входящих в состав Office 2000.
  2. Создание интерактивных Web-страниц, обладающих подобной функциональностью.

Microsoft не только создал эти компоненты, но и первым показал пример их использования, встроив их в Office 2000. Их появление позволило достичь важнейшей для Office 2000 цели - придания интерактивности документам Office 2000, опубликованным в виде Web-страниц и доступным пользователям интрасетей.

Здесь и в дальнейшем под интрасетью я буду понимать все вариации сетей - internet, intranet, extranet.

Интрасети становятся стратегическим направлением развития Microsoft. "Документы создаются в сети и для работы в сети" - вот девиз сегодняшнего дня и ближайшего десятилетия.

Иметь возможность просматривать в сети документы Office 2000 - отчеты, подготовленные в Word, презентации, подготовленные в Power Point, - анализировать данные, сведенные в таблицы Excel, сопровождаемые графиками и диаграммами, - все это крайне важно для пользователей, работающих с документами. Но этого уже недостаточно. Статические страницы не всегда могут удовлетворить запросы активно работающего пользователя. Пожалуй, прежде всего, это касается пользователей, задача которых состоит в анализе деятельности своего офиса, в оценке эффективности тех или иных процессов. Для таких пользователей Excel является одним из основных инструментов, позволяющим проводить исследования типа "что если". Например, его может интересовать, как изменятся характеристики изучаемого процесса при изменении значений тех или иных параметров, что произойдет, если изменить цены или ввести те или иные скидки. Когда у пользователей, работающих в сети, возникают такие задачи, без OWC не обойтись.

Для программистов важно то, что они могут использовать компоненты OWC в своих решениях. Не менее важно и то, что для программистов эти компоненты являются обычными объектами с известной объектной моделью, а потому, используя свойства и методы этих объектов, можно нужным образом настроить свое решение. Компоненты OWC являются программируемыми объектами.

Возможности OWC

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

  • Spreadsheet. Этот элемент реализует функциональность Excel, как электронной таблицы. Он включает:
    • Машину вычислений, - при изменении значений в одной или нескольких ячейках электронной таблицы вся таблица может быть подвергнута пересчету.
    • Полную библиотеку функций - формулы в ячейках могут ссылаться почти на все функции Excel.
    • Возможность сортировки, фильтрации и поиска данных.
    • Сохранение многих свойств Excel. Так, например, можно закрыть для изменения всю таблицу, разрешив для интерактивного обмена лишь ограниченное число ячеек - параметры управления.
    • Дополнительные по сравнению с Excel свойства, позволяющие организовать взаимодействие с контейнером. В частности, имеется возможность организации обмена данными между электронной таблицей и остальной частью Web-страницы. Возможны взаимные ссылки между ячейками интерактивной электронной таблицы и элементами управления, размещаемыми на Web-странице, например текстовыми полями. В конечном счете, это позволяет передать на сервер итоговые результаты проделанных вычислений.
  • Pivot Table. Функциональность этого компонента включает свойства сводной таблицы Excel с рядом полезных дополнений. Этот элемент позволяет:
    • Производить свертку и развертывание сводной таблицы.
    • Производить динамическую фильтрацию, сортировку и группирование данных.
    • Производить автоматический подсчет сумм.
    • Строить диаграмму, динамически отражающую изменения в таблице.
  • Chart. Этот компонент позволяет не только просматривать график или диаграмму как статический рисунок, но, благодаря связи с источником данных, мгновенно отображать на диаграмме изменения, происходящие с данными источника. Также как и остальные Web-компоненты, объект Chart является полностью программируемым и допускает обращение к его свойствам и методам при выполнении VBScript-кода в Internet Explorer.
  • Data Source. Этот компонент не имеет визуального образа при размещении его на Web-странице. В отличие от остальных трех элементов он не играет самостоятельной роли. Обеспечивая соединение с источником данных с последующей доставкой данных, этот элемент играет роль посредника между источником данных и другими компонентами OWC.

Office 2000 и OWC

Поскольку компоненты OWC встроены в Office 2000, то для большинства пользователей Office работа с компонентами скрыта. Пользователь, работающий с документами Excel или Access, может использовать эти компоненты, даже не подозревая о том, что он их использует. Конечно же, опытный пользователь - программист, знающий объектную модель компонентов и умеющий программировать на VBScript, может произвести настройку компонентов OWC, расположенных на Web-странице, включив дополнительные свойства, учитывающие специфику работы с его документом.

Включение компонентов OWC в состав Office 2000 привело к появлению новых возможностей по публикации документов в Excel 2000. В связи с этим существенно изменился внешний вид и функции диалогового окна "Сохранение документа". Также как и в Word, здесь появилась панель с кнопками (ярлыками), позволяющая уточнить расположение сохраняемого документа. В частности, кнопка "Web Folders" открывает Web-папки, хранящиеся на сервере, и позволяет публиковать документ (Web-страницу) непосредственно в папку на сервере, тем самым мгновенно делая его доступным всем участникам совместной работы над документом в интерсети. В этом же диалоговом окне можно указать, следует ли публиковать всю рабочую книгу или отдельный лист, нужно ли добавлять интерактивность публикуемой странице. Командная кнопка "Опубликовать" этой панели открывает новое диалоговое окно "Публикация Web-страницы", в котором можно более детально задать элемент рабочей книги, предназначенный для публикации, а также вид и нтерактивности, придаваемой публикуемому элементу.

В зависимости от типа публикуемых данных на Web-странице автоматически располагаются различные Web-компоненты. Я не буду сейчас останавливаться на деталях этого процесса, но надеюсь, что из сказанного уже очевидно, что, работая в Excel, создавать интерактивные Web-страницы с встроенными компонентами OWC достаточно просто, - нужно лишь грамотно задавать параметры при сохранении страниц рабочей книги Excel или отдельных элементов этих страниц. Аналогичная ситуация имеет место и при работе в Access, где также могут автоматически создаваться интерактивные страницы с расположенными на них компонентами OWC.

Вот как выглядит в Internet Explorer соответствующая Web-страница, полученная при сохранении в Excel интерактивной диаграммы, расположенной на рабочем листе книги Excel.

Интерактивная диаграмма и рабочий лист с источником данных при просмотре в Internet Explorer

увеличить изображение
Рис. 10.1. Интерактивная диаграмма и рабочий лист с источником данных при просмотре в Internet Explorer

Заметьте, в этом случае на Web-страницу выносится как сама диаграмма, так и рабочий лист с источником данных этой диаграммы. В данном конкретном случае диаграмма отображает поквартальную динамику объема продаж, выполненных группой дилеров, с подведением итогов за год. При просмотре в Internet Explorer этой Web-страницы можно ввести новые, уточненные данные, например, за 3-й и 4-й кварталы - тут же машина вычислений пересчитает итоги, тут же перестроится и диаграмма.

Все это становится возможным благодаря тому, что на Web-странице в момент ее сохранения в Excel автоматически размещаются три компонента OWC - Chart, Data Source и SpreadSheet. Как я уже говорил, невидимый объект Data Source "стоит за спиной" объекта Chart, обеспечивая передачу ему данных. Вот часть HTML-кода, отвечающая за появление этих компонентов на Web-странице:

<object
 id="BookFour_29850_WebChart" codebase="file:G:\msowc.cab#version=9,0,0,2710"
 classid="CLSID:0002E500-0000-0000-C000-000000000046" width=378 height=217>
 <param name=XMLData
value= …>
</object>
<object id="BookFour_29850_DSC"
 codebase="file:G:\msowc.cab#version=9,0,0,2710"
 classid="CLSID:0002E530-0000-0000-C000-000000000046">
 <param name=XMLData
 value= …>
</object>
<object id="BookFour_29850_WebCalc"
 codebase="file:G:\msowc.cab#version=9,0,0,2710"
 classid="CLSID:0002E510-0000-0000-C000-000000000046">
 <param name=DisplayTitleBar value=false>
 <param name=DataType value=HTMLData>
 <param name=HTMLData
 value= …>
 </object>

Компоненты вставляются как объекты. Параметр classid позволяет найти их, если они зарегистрированы на компьютере пользователя, просматривающего соответствующую Web-страницу. Параметр codebase позволяет найти их, если они еще не зарегистрированы. Контент, передаваемый компоненту, задается тегом param этих объектов. Я не привожу достаточно длинное значение параметра value этого тега. По правде говоря, можно обойтись и без задания этого контента, что будет видно из последующих примеров.

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

Давайте поговорим теперь более подробно о компонентах.

Ольга Гафарова
Ольга Гафарова

Добрый день. Подскажите формулы при решении задачи на рис. 2.2 в лекции №2. Закон Ома, какие должны использоваться формулы для I и R

Курс: Основы офисного программирования и документы Excel

Серегй Лушников
Серегй Лушников