F. Документация по API
think-cell позволяет программно управлять некоторыми функциями через API. Здесь приводится обзор всех доступных функций API и общие инструкции, как установить свою среду разработки для написания макросов, надстроек или отдельных программ и получать к ним доступ.
- F.1
- Начало работы
- F.2
- Ссылка на API
F.1 Начало работы
API think-cell интегрирован в модель автоматизации Office, что позволяет использовать его на любом языке, который поддерживает Office, таком как Visual Basic for Applications (VBA) или C#.
Точка входа в think-cell — это объект надстройки think-cell. Доступ к нему можно получить через коллекцию Application.COMAddIns
. Вызовы think-cell всегда являются вызовами с поздним связыванием, поэтому не требуется добавлять библиотеку типов или ссылку. Описание см. в статье базы знаний Microsoft:
Использование раннего связывания и позднего связывания в Автоматизации
Некоторые функции API являются методами объекта надстройки think-cell в PowerPoint, а другие — объекта надстройки think-cell в Excel. Мы будем использовать tcPpAddIn
для ссылок на надстройку PowerPoint и tcXlAddIn
для ссылок на надстройку Excel.
F.1.1 Visual Basic for Applications
Для написания макросов с помощью Visual Basic for Applications (VBA) вы будете использовать среду разработки, интегрированную в ведущее приложение Office. Доступ к нему осуществляется путем нажатия Alt+F11. Определение макроса обычно содержится в модуле, который можно добавить через опцию Вставить → Модуль. Все макросы, определенные для данного документа, можно просмотреть, нажав Alt+F8.
Для того, чтобы указать, что вызовы методов надстройки think-cell с поздним связыванием, нужно описать переменную, содержащую на нее ссылку, как Object
:
Ссылка на библиотеку типов для ведущего приложения Office всегда включена по умолчанию. Если вам нужен доступ к модели объектов другого приложения Office, нужно добавить эту библиотеку типов в качестве ссылки.
Например, если вы хотите использовать макрос в PowerPoint для управления данными на листе Excel до обновления из него диаграммы think-cell, нужно вручную добавить библиотеку объектов Microsoft Excel 16.0 в диалоговом окне Инструменты → Ссылки среду разработки VBA.
Примечание. 16.0 — номер версии Office 2016 и более поздних. С Office 2010 или 2013 необходимо использовать библиотеки объектов 14.0 или 15.0 соответственно. Если у вас установлено несколько версий Office, в диалоговом окне Ссылки отобразятся только библиотеки объектов самой последней установленной версии. Далее мы будем считать, что вы используете Office 2016 или более позднюю версию.
При использовании Application.COMAddIns("thinkcell.addin").Object
вы всегда получите объект надстройки think-cell текущего ведущего приложения Office, то есть tcPpAddIn
или tcXlAddIn
, в зависимости от места использования — PowerPoint или Excel. Чтобы получить ссылку на объект надстройки в другом приложении Office и доступ к открываемым им функциям API, получите ее через соответствующий экземпляр приложения.
Например, для получения ссылки на tcXlAddIn
из PowerPoint:
Обратите внимание на то, что для этого необходимо добавить в качестве ссылки библиотеку объектов Excel.
Мы рекомендуем использовать заявление Option Explicit
, делающее необходимым явное описание всех переменных, тем самым помогая избежать общих ошибок программирования и улучшая предложения IntelliSense. Его можно автоматически добавить во все модули, активируя Инструменты → Опции → Настройки кодов → Требуется описание переменных. Оно включено во все образцы кодов.
F.1.2 C#
API think-cell можно использовать из C# при разработке надстроек и расширений кодов документов, запуская внутри ведущего приложения Office, а также при разработке отдельных приложений.
Далее мы будем исходить из предположения, что для разработки решений Office в C# вы используете Visual Studio 2017 или более поздние версии. Более подробные конкретные инструкции по установке для разработки надстройки смотрите в следующем разделе. С каждым образцом кодов мы укажем, какой шаблон проекта Visual Studio нужно использовать.
Для позднего связывания вызова методов к объектам надстройки think-cell определите переменную, содержащую ссылку на объект надстройки think-cell как dynamic
. Такой же тип выводится компилирующей программой при определении ссылки как var
, так что можно просто написать:
Здесь ppapp
является ссылкой на объект Application
PowerPoint, куда загружается think-cell.
Для доступа к модели объекта приложения Office в качестве ссылки на проект необходимо добавить либо библиотеку типов, либо ее основную сборку взаимодействия (PIA). Мы рекомендуем по возможности добавить библиотеку типов, поскольку Visual Studio автоматически добавит ссылку на соответствующую PIA, если она доступна, или сгенерирует сборку взаимодействия из библиотеки типов, если она отсутствует (см. здесь).
Например, чтобы получить ссылку на объект надстройки think-cell, как указано выше, вы бы добавили библиотеку объектов Microsoft PowerPoint 16.0, которая находится во вкладке COM → Библиотеки типов диалогового окна Диспетчер ссылок. В зависимости от типа проекта к этому диалоговому окну можно получить доступ, щелкнув правой кнопкой мыши по вкладке Ссылки или Зависимости в Обозреватель решений и выбрав Добавить ссылку (COM).
Примечание. 16.0 — номер версии Office 2016 и более поздних. При использовании опции Внедрить типы взаимодействия, который включен по умолчанию для ссылки на библиотеку типов COM, составленное с этой ссылкой приложение будет иметь обратную (и восходящую) совместимость с другими версиями Office до тех пор, пока все используемые интерфейсы существуют в своей модели объектов. Дополнительные сведения см. здесь.
Функции API think-cell указывают ошибки при использовании COM HRESULT
. Некоторые из них связываются автоматически с соответствующими классами исключений .NET. См. раздел Как: связать HRESULTs и исключениями .
F.1.2.1 Разработка надстроек
Для разработки надстроек для Office или расширений кодов для документов Office используйте шаблоны проектов надстройки PowerPoint/
PIA для ведущего приложения Office выбранного шаблона всегда загружается по умолчанию. Если вам нужен доступ к модели объектов другого приложения Office, нужно добавить эту библиотеку типов в качестве ссылки, как разъясняется выше.
Примечание. API think-cell нельзя использовать из веб-надстроек Office (к сожалению, сейчас называются Microsoft просто «Надстройки Office»), так как не могут взаимодействовать напрямую с моделью объектов приложения Office и, в частности, не могут взаимодействовать с такими надстройками COM, как think-cell.
F.2 Ссылка на API
- F.2.1
- Обновление элементов и шаблонов презентаций данными Excel
- F.2.2
- Управление стилями
- F.2.3
- Импорт диаграмм Mekko Graphics
- F.2.4
- Разные аспекты
F.2.1 Обновление элементов и шаблонов презентаций данными Excel
Описанные в этом разделе функции можно использовать для программного обновления элементов think-cell (обычно заполнителей в шаблоне презентации) данными из Excel. UpdateChart
обновляет элементы think-cell, указанные по назначенному ему в шаблоне имени, добавляя данные из диапазона Excel, передаваемые как аргумент. Как составить шаблон, см. также в 24. Введение в автоматизацию.
PresentationFromTemplate
приписывает значение шаблону презентации, добавляя данные из связанной рабочей книги Excel. Как создать связь Excel, см. также в 21. Ссылки на данные Excel.
Функции в этом разделе являются методами надстройки think-cell в Excel.
F.2.1.1 UpdateChart
F.2.1.1.1 Сигнатура
VBA
C#
F.2.1.1.2 Описание
Эта функция обновляет все элементы в target
именем strName
с данными, содержащимися в rgData
. Для правильной интерпретации данных для диаграмм диапазон rgData
должен соответствовать их макету таблицы по умолчанию или переставленной версии. См. также Создание диаграммы на основе данных Excel и Настройка макета данных. То, какую версию использовать — по умолчанию или переставленную, — указывается установкой bTransposed
на false
или true
соответственно. В случае с элементами, которые не являются диаграммами, например, с таблицами, значение bTransposed
игнорируют.
target
должен быть Presentation
или SlideRange
, или один Slide
, Master
или CustomLayout
.
При сопоставлении имени strName
регистр не учитывается. Оно должно было быть назначено ранее в PowerPoint с использованием элемента управления свойством Имя UpdateChart, как описано в разделе 24. Введение в автоматизацию.
Для выбора правильных элементов в качестве целей убедитесь в том, что только у них Имя UpdateChart установлено на strName
в объекте, передаваемом как pres
.
Если целевой элемент связан с каким-либо диапазоном данных Excel во время вызова этой функции, связь будет нарушена. После этого элемент не будет связан ни с каким диапазоном Excel.
F.2.1.1.3 Примеры
Чтобы использовать эти образцы, составьте презентацию, как описано в 24. Введение в автоматизацию, и сохраните ее как C:\Samples\UpdateChart\template.pptx
.
VBA
Чтобы использовать этот образец, добавьте его в модуль в рабочей книге Excel.
Требуется ссылка на библиотеку объектов Microsoft PowerPoint 16.0 (см. сведения в Visual Basic for Applications).
При запуске UpdateChart_Sample
в рабочей книге диаграмма в шаблоне презентации обновится с добавлением данных, содержащихся в диапазоне A1:D5
первого листа.
C#
Чтобы использовать этот образец, замените им код в шаблоне проекта Program.cs
C# Консольное приложение.
Для этого требуется ссылка на библиотеку объектов Microsoft PowerPoint 16.0, библиотеку объектов Microsoft Excel 16.0 и библиотеку объектов Microsoft Office 16.0 (см. сведения в C#).
При запуске получившегося в результате приложения диаграмма в шаблоне презентации обновится и будет содержать один ряд под названием «Ряд 1» со значениями 1, 2, 3. Сохраните результат как template_updated.pptx
.
F.2.1.2 PresentationFromTemplate
F.2.1.2.1 Сигнатура
VBA
C#
F.2.1.2.2 Описание
В этой функции используются связи данных рабочей книги Excel wb
с шаблоном с именем файла strTemplate
, чтобы создать этот шаблон, обновив связанные элементы данными из диапазонов, к которым они привязаны. Результатом будет новая презентация в экземпляре PowerPoint ppapp
.
strTemplate
может быть полный путь или относительный путь, который считается относительным для расположения файла книги Excel wb
.
Все элементы в strTemplate
, которые связаны с книгой Excel wb
, обновляются (независимо от того, обновляются они автоматически или нет). В полученной в результате презентации связи данных разбиты для того, чтобы избежать изменения этих элементов в будущем.
Элементы в strTemplate
, которые связаны с книгами Excel, отличными от wb
, не меняются и остаются связанными, поэтому можно обновить ссылки из множества книг Excel, сохранив результат этой функции как новый шаблон и вызвав эту функцию снова для следующей рабочей книги.
Если вы хотите управлять цветами сегментов диаграммы или форматированием ячеек таблицы со связью Excel, вы можете задать цветовую схему в опциях Использовать заливку таблицы сверху (см. раздел Цветовая схема) или Использовать таблицу... (см. раздел Форматирование таблицы) соответственно. Чтобы контролировать формат чисел с помощью ссылки на Excel, выберите параметр Использовать формат Excel (см. раздел Формат чисел).
Установите соответствующие опции форматирования и формат чисел соответствующих ячеек в Excel перед вызовом PresentationFromTemplate
.
F.2.1.2.3 Примеры
Чтобы использовать эти образцы, сначала создайте презентацию, содержащую диаграмму с накоплением, связанную с диапазоном G1:K4
первого листа в рабочей книге Excel, как объясняется в разделе Создание диаграммы на основе данных Excel. Сохраните получившуюся в результате презентацию как C:\Samples\PresentationFromTemplate\template.pptx
, а рабочую книгу как data.xlsx
в одном и том же каталоге:
VBA
Чтобы использовать этот образец, добавьте его в модуль в рабочей книге Excel data.xlsx
, подготовленный, как разъясняется выше.
Требуется ссылка на библиотеку объектов Microsoft PowerPoint 16.0 (см. сведения в Visual Basic for Applications).
При запуске PresentationFromTemplate_Sample
изменится значение в ячейке Sheet1!H3
, которая связана с первым значением первого ряда диаграммы, содержащимся в template.pptx
, с i=1
на 10
, создастся новая презентация с диаграммой в шаблоне, обновленном так, что он содержит это значение, и который больше не связан с рабочей книгой, и сохранится как output_i.pptx
в той же директории, что и шаблон.
C#
Чтобы использовать этот образец, замените им код в шаблоне проекта Program.cs
C# Консольное приложение.
Для этого требуется ссылка на библиотеку объектов Microsoft PowerPoint 16.0, библиотеку объектов Microsoft Excel 16.0 и библиотеку объектов Microsoft Office 16.0 (см. сведения в C#).
При запуске получившегося в результате приложения явно откроется Excel, загрузится рабочая книга data.xlsx
изменится значение в ячейке H3
, которая связана с первым значением первого ряда диаграммы, содержащимся в template.pptx
, с i=1
на 10
, создастся новая презентация с диаграммой в шаблоне, обновленном так, что он содержит это значение, и который больше не связан с рабочей книгой, и сохранится как output_i.pptx
в той же директории, что и шаблон.
F.2.2 Управление стилями
Функции в этом разделе можно использовать для программной загрузки, проверки и удаления стилей think-cell. LoadStyle
загружает стиль из файла стилей на образец слайда или в отдельный индивидуальный макет. LoadStyleForRegion
загружает стиль из файла стилей в конкретную область индивидуального макета. GetStyleName
возвращает имя стиля, загруженного в основной или индивидуальный макет. RemoveStyles
удаляет все стили из индивидуального макета.
Более подробная информация о создании и редактировании стилей приводится в Создание стиля think-cell и D. Формат файла стиля. Более подробная информацию об их загрузке приводится в Загрузка файлов стиля.
Функции в этом разделе являются методами надстройки think-cell в PowerPoint.
F.2.2.1 LoadStyle
F.2.2.1.1 Сигнатура
VBA
C#
F.2.2.1.2 Описание
Эта функция загружает стиль из файла стиля в FileName
в основной файл или индивидуальный макет, указанный через параметр CustomLayoutOrMaster
.
CustomLayoutOrMaster
должен быть CustomLayout
или Master
.
При применении к индивидуальному макету, где был установлен региональный стиль (см. раздел LoadStyleForRegion), региональный стиль будет удален. Это значит, что вы должны будете загрузить стиль, который следует применить на остальной части слайда, с помощью этой функции до загрузки стиля, ограниченного областью.
При применении к основному макету любые загруженные в индивидуальные макеты стили в этом основном макете — региональные и неограниченные — будут удалены. Это значит, что вы должны загрузить в основной макет стиль, который следует применить к индивидуальным макетам без конкретного стиля, до загрузки стиля, применимого к конкретному индивидуальному макету, с помощью этой функции.
F.2.2.1.3 Примеры
VBA
Чтобы использовать этот образец, добавьте следующий код в модуль в PowerPoint (см. детали в Visual Basic for Applications).
F.2.2.2 LoadStyleForRegion
F.2.2.2.1 Сигнатура
VBA
C#
F.2.2.2.2 Описание
Эта функция загружает файл стиля FileName
в индивидуальный макет CustomLayout
и ограничивает его областью, заданной Left
, Top
, Width
, Height
. На остальной части слайда применяется стиль, загруженный в этот основной макет, или стиль, загруженный ранее в индивидуальный макет с LoadStyle
.
Параметры Left
, Top
, Width
, Height
заданы в точках PowerPoint. Left
и Top
указывают расстояние от левого и правого краев области от левого и верхнего краев индивидуального макета соответственно. Обычно вы устанавливаете их как дробные значения от общей высоты и ширины слайда. Например, для области, охватывающей две трети индивидуального макета справа, вы установите
Можно вручную добавить на слайд или в индивидуальный макет фигуру, запросить ее свойства Left
, Top
, Width
, Height
программно и использовать значения с LoadStyleForRegion
для ограничения стиля область, занимаемой фигурой.
think-cell поддерживает максимум два стиля на индивидуальный макет. Один набор с LoadStyle
, который включает все, что не ограничивается областью, а другой — с LoadStyleForRegion
.
F.2.2.2.3 Примеры
VBA
Чтобы использовать этот образец, добавьте следующий код в модуль в PowerPoint (см. детали в Visual Basic for Applications).
F.2.2.3 GetStyleName
Поддерживается в think-cell 13 и более поздних версиях.
F.2.2.3.1 Сигнатура
VBA
C#
F.2.2.3.2 Описание
Эта функция возвращает имя стиля, загруженного в CustomLayout
или Master
CustomLayoutOrMaster
. Это то же самое имя, которое указывается в атрибуте name
элемента <style>
соответствующего файла стиля (см. раздел style).
Оно возвращает пустую строку, когда в CustomLayoutOrMaster
не загружен никакой стиль. Обратите внимание на то, что в основном макете всегда есть загруженный стиль при активной надстройке think-cell и что имя стиля не может быть пустым.
Возвращенное для CustomLayout
имя — это имя стиля, загруженного с LoadStyle, а не с LoadStyleForRegion (при наличии).
F.2.2.3.3 Примеры
VBA
Чтобы использовать этот образец, добавьте следующий код в модуль в PowerPoint (см. детали в Visual Basic for Applications).
F.2.2.4 RemoveStyles
F.2.2.4.1 Сигнатура
VBA
C#
F.2.2.4.2 Описание
Эта функция удаляет все стили из индивидуального макета CustomLayout
. Потом применяется стиль, загруженный в основной файл. Потенциально в индивидуальный макет можно загрузить стили и другой стиль, ограниченный определенной областью индивидуального макета. Поскольку RemoveStyles
удаляет все стили, оба стиля будут удалены. Загруженный в основной файл стиль невозможно удалить, так как там всегда должен быть действительный стиль, связанный с основным файлом. Его можно переписать другим файлом стиля.
F.2.2.4.3 Примеры
VBA
Чтобы использовать этот образец, добавьте следующий код в модуль в PowerPoint (см. детали в Visual Basic for Applications).
F.2.3 Импорт диаграмм Mekko Graphics
Функции в этом разделе можно использовать для программируемого импорта в think-cell и проверки диаграмм, созданных с помощью Mekko Graphics. ImportMekkoGraphicsCharts
заменяет диаграммы Mekko Graphics эквивалентными диаграммами think-cell. GetMekkoGraphicsXML
извлекает определение XML диаграммы Mekko Graphics.
Функции в этом разделе являются методами надстройки think-cell в PowerPoint.
F.2.3.1 ImportMekkoGraphicsCharts
Поддерживается в think-cell 13 и более поздних версиях.
F.2.3.1.1 Сигнатура
VBA
C#
F.2.3.1.2 Описание
Эта функция заменяет все диаграммы Mekko Graphics в массиве Shape
, переданном ей с эквивалентной диаграммой think-cell. Все фигуры должны быть на одном слайде. До изменения слайда функция создаст копию неизмененного слайда и вставит ее непосредственно после измененной версии.
Функция возвращает ссылку на эту копию (если создается).
Она возвращает Nothing
/null
, если презентация не была изменена, например, из-за того, что массив не содержал никаких диаграмм Mekko Graphics.
F.2.3.1.3 Примеры
VBA
Чтобы использовать этот образец, добавьте его в модуль в PowerPoint (см. детали в Visual Basic for Applications).
При запуске ImportAll
в презентации пройдет через слайды и заменит все видимые диаграммы Mekko Graphics эквивалентными диаграммами think-cell, делая содержащую их копию каждого слайда до его изменения.
C#
Чтобы использовать этот образец, добавьте этот метод в класс ThisAddIn
шаблона проекта надстройки PowerPoint VSTO C# (см. сведения в C# и Разработка надстроек).
Добавьте следующую строку в метод ThisAddIn_Startup
для запуска ImportAll
в каждой открытой презентации:
F.2.3.2 GetMekkoGraphicsXML
Поддерживается в think-cell 13 и более поздних версиях.
F.2.3.2.1 Сигнатура
VBA
C#
F.2.3.2.2 Описание
Эта функция возвращает XML диаграммы Mekko Graphics в shp
в качестве строки. Она не изменяет передаваемую ей фигуру.
Если shp
не является диаграммой Mekko Graphics, отображается ошибка E_INVALIDARG (0x80070057)
.
F.2.3.2.3 Примеры
VBA
Чтобы использовать этот образец, добавьте следующий код в модуль в PowerPoint (см. детали в Visual Basic for Applications).
C#
Чтобы использовать этот образец, замените им код в Program.cs
в консольном приложении.
Для этого требуется ссылка на библиотеку объектов Microsoft PowerPoint 16.0 и библиотеку объектов Microsoft Office 16.0 (см. сведения в C#).
При запуске это приложение пройдет через презентацию в C:\Samples\GetMekkoGraphicsXML\presentation.pptx
и напечатает в консоль XML содержащихся в нем диаграмм Mekko Graphics.
F.2.4 Разные аспекты
Функции в этом разделе являются методами надстройки think-cell в PowerPoint.
F.2.4.1 StartTableInsertion
Поддерживается в think-cell 13 и более поздних версиях.
F.2.4.1.1 Сигнатура
VBA
C#
F.2.4.1.2 Описание
Вызов этого метода имеет такой же эффект, что и нажатие на кнопку Таблица в меню Элементы в PowerPoint.
Создание диаграмм
-
4.Введение в создание диаграмм
-
5.Ввод данных
-
6.Текстовые подписи
-
7.Гистограммы, линейные графики и диаграммы с областями
-
8.Оформление диаграмм
-
9.Каскадная диаграмма
-
10.Диаграмма Mekko
-
11.Круговая и кольцевая диаграмма
-
12.Точечная диаграмма и пузырьковая диаграмма
-
13.Диаграмма Ганта (временная шкала)