Как добиться Excel-подобного поведения ссылки OLE в пользовательском объекте OLE - PullRequest
0 голосов
/ 29 марта 2011

В Word вы можете ссылаться на определенные ячейки в электронной таблице Excel, которая сама может существовать как отдельный файл или как встроенный объект в слове doc. Затем можно создать ссылки на определенные ячейки в этой электронной таблице, обычно путем копирования ячеек из активной на месте электронной таблицы и использования специальной вставки для вставки ссылки на скопированные ячейки. Ссылка использует формат Excel! Sheet1! R2C1 в имени ссылки для идентификации ячеек (и вы можете редактировать это имя, чтобы ссылаться на разные ячейки).

Как мне добиться того же эффекта для пользовательского объекта OLE (созданного с использованием классов OLE MFC)?
Возможно ли это, или Word использует для этого встроенные знания об Excel?

1 Ответ

0 голосов
/ 29 марта 2011

Краткий ответ: Item Moniker .Для этого вам необходимо реализовать IOleItemContainer.

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

Длинный ответ - нет, Word не использует секретные знания об Excel (или наоборот), хотя я уверен, что это помогает, что OLE был построен с внедрением Excel в Word как основнойпотребительная случай.

Вы также можете встроить диапазон Excel в Internet Explorer или почти все, что поддерживает встраивание.И вы можете получить доступ к объекту диапазона и изменить его свойства из VBScript, используя Set oRange = GetObject("c:\path\to\spreadsheet.xls!Sheet1!R2C1") или аналогичный.

...