База Знаний: Функции Calc. DDE
DDE
Функция возвращает данные на основе DDE связи.
Синтаксис функции:
=DDE(server; file; item; mode) |
---|
где:
- server — (текстовое) имя сервера; например “soffice” для InfraOffice.pro и OpenOffice.org;
- file — (текстовое) полное имя или IRL (Internet Resource Locator) документа, содержащего данные; например “c:\office\document\test1.ods” или “file:///documents/test2.ods”;
- item — (текстовое) имя возвращаемого элемента. Например “Лист1.B3” — ячейка B3 на Лист1 электронной таблицы InfraOffice.pro Calc; “MyRange” — имя диапазона в электронной таблице Calc; “MyItem” — имя раздела или таблицы в документе InfraOffice.pro Writer;
- mode — необязательный параметр, определяющий, как возвращаются числа. Нечисловой текст возвращается неизменным:
- 0 или опущен: данные преобразуются к числу если возможно, используя стиль ячейки по умолчанию;
- 1: данные преобразуются к числу если возможно, в формате английский США (en_US) (например, используя “.” как десятичный разделитель);
- 2: Данные всегда восстанавливаются как текст (не преобразуются в число).
Функция DDE выполняет запрос по протоколу DDE и возвращает его результат. Обычно это просто локальная операция на машине, но эта спецификация не налагает подобного ограничения.
DDE создаёт связь к элементу (и возвращает содержимое), таким образом любое изменение элемента отражается на результате DDE.
Альтернативный метод для создания DDE связи — скопировать ячейку или диапазон из исходного файла в буфера обмена, а затем используя команду меню Правка → Вставить как, выбрать пункт Связь по DDE. Связь вставляется как функция DDE, как формула массива.
Команда меню Правка → Связи… отображает список DDE связей и позволяет их изменять, обновлять вручную или разрывать.
DDE поддерживает «Динамический обмен данными», который является предшественником OLE, «Связывания и встраивания объектов». Объекты DDE связаны по ссылке с источником; они не встроены в целевой документ.
- =DDE(“soffice”;“C:\OpenOffice\test1.ods”;“Лист1.C7”)
Создает связь и возвращает содержимое ячейки C7 на листе Лист1 файла InfraOffice.pro Calc test1.ods.
- =DDE(“soffice”;“C:\OpenOffice\test2.odt”;“Таблица1”)
Когда введена как формула массива, создаёт связь и возвращает содержимое таблицы по имени Таблица1 в файле InfraOffice.pro Writer test2.odt, в одном столбце. Каждый абзац в ячейке таблицы появляется в своей собственной ячейке. Содержимое левой верхней ячейки таблицы отображается в первую очередь, за ним следуют по порядку другие ячейки в верхней строке, а затем аналогичным образом по порядку в других строках. Функция INDEX может использоваться для возврата только части таблицы.
- =DDE(“soffice”;“C:\OpenOffice\test2.odt”;“Раздел1”)
Когда введена как формула массива, создаёт связь и возвращает содержимое раздела по имени Раздел1 в файле InfraOffice.pro Writer test2.odt в одном столбце, один абзац в ячейке. Когда введена обычно (не как формула массива), она возвращает первый абзац раздела Раздел1.
- =INDEX(DDE(“soffice”;“C:\OpenOffice\test2.odt”;“Раздел1”);2)
Когда введена как формула массива, создаёт связь и возвращает содержимое второго абзаца раздела Раздел1 в файле InfraOffice.pro Writer test2.odt.
Когда используется массив для возврата данных, размер массива закрепляется при первом вычислении. Если например число строк в таблице Writer или разделе изменяется, размер массива в Calc не изменяется.
InfraOffice.pro 3.1.x