Excel динамический обмен данными
Обмен данными через буфер производится для всех приложений Windows. Информация заносится в буфер по команде Правка/Копировать. Находящиеся в буфере данные в Excel могут вставляться в другой рабочий лист, другую рабочую книгу. Можно таблицу Excel вставить и в другое приложение Windows, например текстовый редактор Word. В этом случае после копирования данных в буфер обмена нужно переключиться (или загрузить) в редактор Word, задать команду Правка/Вставка. Данные скопируются в виде таблицы Word.
Динамический обмен данными DDE
Динамический обмен данными (Dynamic Data Exchange — DDE) позволяет установить постоянную связь по обмену данными между двумя программами Windows, например, Excel с текстовым редактором Word. Обмен данными в этом случае происходит автоматически, т.е. при каждом изменении цифр в таблице Excel такое же изменение происходит и в таблице, находящейся в текстовом редакторе. Обмен будет происходить только, если обе программы открыты в среде Windows одновременно. Для установки такой связи надо таблицу (или фрагмент таблицы) Excel скопировать в буфер обмена, переключиться в текстовый редактор, задать команду Правка/Специальная вставка, выбрать пункт Форматированный текст (rtf) и включить опцию Связать. Если вместо изображения таблицы в документе показывается строка символов в фигурных скобках, следует задать команду Сервис/Опции и во вкладке Просмотр сбросить переключатель Коды полей. Excel может выступать и как импортер, например, текста из редактора Word. В этом случае текст Word копируется в буфер обмена, затем нужно переключиться (или загрузить) в Excel, задать команду Правка/Вставка/Специальная вставка и включить опцию Связать. Текст вставляется в виде объекта. Аналогичным образом можно вставить диаграмму Excel на слайд PowerPoint.
Связь и внедрение объектов OLE
Функция связи и внедрения объектов (Object Linking And Embedding — OLE) позволяет организовать динамический обмен данными, с помощью объектов. Для установки такой связи таблица (или фрагмент таблицы) Excel копируется в буфер обмена, затем нужно переключиться в текстовый редактор, установить курсор в нужное место задать команду Вставка/Объект, вкладку Создать новый, в поле Тип объекта выбрать строку Лист Microsoft Excel. После этого в документ будет вставлена пустая таблица Excel. Выделить начальную ячейку таблицы, задать команду Правка/Вставить, чтобы перенести данные из буфера обмена в новую таблицу. Вставленную таблицу Excel можно редактировать в состоянии, когда она обрамлена штриховой рамкой. Чтобы продолжить работу с текстом, достаточно щелкнуть мышью в области текста вне таблицы. При необходимости повторного редактирования таблицы нужно дважды щелкнуть внутри нее мышью.
Приложение, с данными которого требуется установить связь, должно поддерживать динамический обмен данными (DDE).
1 Выделите ячейку, из которой требуется создать связь.
2 Введите формулу, используя следующие синтаксис: имя приложения; имя документа или раздела документа; диапазон ячеек, значение, поле или данные, на которые сделана ссылка.
Приведенный ниже пример иллюстрирует различные части формулы с удаленными ссылками и используемые в ней разделители.
Знак (|) разделяет имя программы и имя документа или раздела. Восклицательный знак (!) отделяет имя документа или раздела от диапазона, значения поля или данных, на которые установлена ссылка.
3 Нажмите клавишу ENTER.
Примечание. Если имя приложения, документа, раздела или элемента данных содержит пробелы или специальные знаки формул, например двоеточие (:) или знак минуса (–), либо если имя имеет вид ссылки на ячейку, заключите его в апострофы
Пример1. Для связи с элементом (переменная x в рабочем пространстве MATLAB) через раздел Engine приложения MATLAB введите в ячейку Excel формулу:
=MATLAB|Engine!'x'
- При изменении значения переменной x в MATLAB содержимое ячейки Excel автоматически не обновляется. Для обновления значения требуется выделить данную ячейку и нажать клавишу .
- Если x –матрица, то в ячейку Excel будет передан только элемент x(1,1).
Использование Visual Basic для MATLAB Сервера DDE
Связь осуществляется с помощью макросов на Visual Basic for Applications (VBA) с использованием методов (функций и процедур для объектов ):
Инициализация канала связи (VBA DDEInitiate метод)
Открывает DDE канал с приложением и возвращает номер канала.
DDEInitiate(App, Topic)
App (Тип- String). Имя приложения.
Topic (Тип- String). Имя раздела.
Пример1.Открывает канал связи с разделом Engine приложения MATLAB.
lngChannel = Application.DDEInitiate(App:="MATLAB", Topic:="Engine")
Открывает канал связи с разделом документ Word с именем на диске C:\WINWORD\FORMLETR.DOC приложения MS Word.
channelNumber = Application.DDEInitiate( _
Посылка команд к MATLAB для выполнения (VBA DDEExecute метод)
Клиенты посылают команды MATLAB, используя DDE операцию DDEExecute,
Application.DDEExecute(Channel, Command)
Application.DDEExecute Channel, Command
Channel (Тип- Long). Номер канала, установленный с помощью метода DDEInitiate.
Command (Тип- String). Команда имеющая смысл приложении, куда посылается.
Пример1: Передача в MATLAB на выполнение команды присвоения значений матрице
Пример надо записать в m-файл excelprim2.m и выполнить:
% Инициализировать сеанс свЯзи с Excel.
chan = ddeinit('excel', 'Лист2');
% Диапазон набора Ячеек в Excel длЯ записи по DDE.
% Создать поверхность графика пиков.
% Получить z данные поверхности.
% Записать по DDE z данные в лист Excel.
rc = ddepoke(chan, range, z);
% Установить горЯчую свЯзь с
% Excel и матрицей MATLAB 'z'.
% Возвращаемый ответ вынуждает zdata и cdata длЯ
% поверхности h быть новыми данными, посланными от Excel.
rc = ddeadv(chan, range.
% Создать кнопку команды, котораЯ при нажатии на неё закончит обновлЯемую свЯзь,
% закончит сеанс свЯзи DDE,
% и закрывает окно рисунка.
c = uicontrol('String','&Close','Position',[5 5 80 30].
'Callback', 'rc = ddeunadv(chan,range);ddeterm(chan);close;');
ddeexec
Поcлать текстовую строку с командой, которую понимает сервер, на выполнение
ddeexec посылает строку на выполнение к другому приложению через установленный сеанс связи DDE. Определите команду как строку.
Если Вы опускаете дополнительные параметры, которые находятся не в конце списка параметров, Вы должны заменить пустой матрицей отсутствующие параметры.
Если успешно, ddeexec возвращается 1 в переменной, rc. Иначе это возвращается 0.
Канал сеанса связи от ddeinit.
Строка, определяющая команду, которая будет выполнена.
Строка, определяющая элемент DDE называет для выполнения. Этот параметр не используется для многих приложений. Если ваше приложение требует этого параметра, это обеспечивает дополнительную информацию для команды. Консультируйтесь с вашей документацией сервера для получения дополнительной информации.
Скаляр, определяющий ограничение времени выполнения для этой операции. время ожидания определено в миллисекундах. (1000 миллисекунд = 1 секунда). Значение по умолчанию времени ожидания - три секунды.
Учитывая канал, назначенный на сеанс связи, пошлите команду Excel:
Строка [formula.goto("r1c1")] является командой для Excel перевести курсор на ячейку A1.
Связь с Excel, должно быть, была установлена предварительно с командой ddeinit.
Комплексный пример на применение функций ddeinit, ddepoke, ddereq, ddeexec, ddeterm.
try %обработка ошибки установлениЯ DDE соединениЯ
% Установим DDE канал с Лист1, уже открытым в Excel.
chan1= ddeinit('excel', 'Лист1');
% Задаем начальные значениЯ матрицы z
% Установим диапазон Ячеек.
% Запишем матрицу z в указанный диапазон.
rc = ddepoke(chan1, range, z)
% Считаем данные обратно из указанного диапазона Excel в матрицу z1 MATLAB
Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.
Рабочие листы и материалы для учителей и воспитателей
Более 2 500 дидактических материалов для школьного и домашнего обучения
Столичный центр образовательных технологий г. Москва
Получите квалификацию учитель математики за 2 месяца
от 3 170 руб. 1900 руб.
Количество часов 300 ч. / 600 ч.
Успеть записаться со скидкой
Форма обучения дистанционная
- Онлайн
формат - Диплом
гособразца - Помощь в трудоустройстве
311 лекций для учителей,
воспитателей и психологов
Получите свидетельство
о просмотре прямо сейчас!
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ
Тема занятия: Технология динамического обмена данными между Excel и другими приложениями Windows
Цель выполнения задания: п олучить практические навыки работы с разными приложениями Office для создания документов
Необходимо знать: практические навыки работы с данными .
Необходимо уметь: работать с приложениями Office для создания документов.
Оборудование (приборы, материалы, дидактическое обеспечение) Инструкционные карты, мультимедийные презентации, персональные компьютеры.
ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ
Существует множество различных способов совместного использования данных программами Microsoft Office. Например, Word предоставляет несколько способов вставки данных Microsoft Excel в документ Word. Можно скопировать и вставить электронную таблицу Excel в документ Word. Кроме того, в документ Word можно также вставить электронную таблицу в виде связанного объекта или внедренного объекта.
Основные различия между связыванием и внедрением (встраиванием) объектов заключаются в месте хранения данных и способе обновления данных после помещения их в документ.
Связанный объект – это объект (например, электронная таблица), созданный в одном файле и вставленные в другой файл с поддержкой связи между файлами. Связанный объект может обновляться одновременно с обновлением исходного файла. Связанный объект не является частью файла, в который он вставлен.
Внедренный объект – это объект (например, электронная таблица), вставленный в файл. Будучи внедренным, объект становится частью файла. При двойном щелчке внедренный объект открывается с помощью программы, в которой был создан. Все вносимые во внедренный объект изменения отображаются в содержащем его файле.
Связывание и внедрение можно осуществлять как при помощи буфера обмена, так и при помощи диалогового окна "Вставка объекта", которое вызывается командой Объект в меню Вставка.
ХОД ВЫПОЛНЕНИЯ ЗАДАНИЯ, МЕТОДИЧЕСКИЕ УКАЗАНИЯ
№ 1 . Создайте документ Word в соответствии с прилагаемым образцом
Установите горячую связь между диапазоном ячеек в Excel ( от Строка 1, Столбец 1 до Строка 5, Столбец 5) и матрицей x. Если связь установлена успешно, выводит матрицу на дисплей :
Канал связи с Excel, должно быть, была установлена предварительно командой ddeinit.
rc = ddeadv(channel, 'r1c1:r5c5', 'disp(x)', 'x');
Вы можете использовать DDE, чтобы уведомить приложение-клиента, когда данные в сервере изменились. Например, если Вы используете MATLAB, чтобы анализировать данные, введенные в электронную таблицу Excel, Вы можете установить связь, которая заставляет Excel уведомлять MATLAB, когда это данные изменяется. Вы можете также установить связь, которая автоматически модифицирует матрицу при вводе новых или изменении старых данных в электронной таблице.
MATLAB поддерживает два вида автоматически обновляемых связей, различающихся по тому, как приложение - сервер сообщает MATLAB, когда данные, которые являются предметом элемента, изменяются в сервере:
Горячая связь заставляет сервер сразу передавать данные к MATLAB, когда данные, определенные элементом изменяются.
Теплая связь заставляет сервер уведомлять MATLAB, когда данные изменяются, но поставляет данные только, когда MATLAB запрашивает их.
ddeunadv
Закрывает автоматически обновляемую связь
ddeunadv освобождает автоматически обновляемую связь между MATLAB и приложением - сервером, установленным более ранним вызовом ddeadv. Канал, элемент, и формат должны быть те же самые как определенные в вызове к ddeadv, который инициализировал связь. Если Вы включаете параметр времени ожидания, но принимаете заданный по умолчанию формат, Вы должны определить формат как пустую матрицу.
Если успешно, ddeunadv возвращается 1 в переменной, rc. Иначе возвращается 0.
Канал сеанса связи от ddeinit.
Строка, определяющая имя элемента DDE для автоматически обновляемой связи. Изменение данных в сервере , идентифицированных элементом вызывает автоматически обновляемую связь.
Массив с двумя элементами. Он должно быть тем же, как параметр формата для передачи в вызове ddeadv.
Скаляр, определяющий ограничение времени выполнения для этой операции. время ожидания определено в миллисекундах. (1000 миллисекунд = 1 секунда). Значение по умолчанию времени ожидания - три секунды.
Освободить автоматически обновляемую связь, установленную предварительно с ddeadv:
rc = ddeunadv(channel, 'r1c1:r5c5')
Вы устанавливаете и освобождаете автоматически обновляемые связи функциями ddeadv и ddeunadv. MATLAB поддерживает такие связи, только когда MATLAB является клиентом.
Комплексный пример на применение функций ddeinit, ddepoke, ddeadv, ddeunadv, ddeterm.
Слудующий пример устанавливает сеанс связи DDE между MATLAB, действующим как клиент, и Microsoft Excel. Данный пример расширяет пример в предыдущем разделе, создавая горячую связь с Excel. Связь модифицирует матрицу z и вычисляет возвращаемый ответ, когда диапазон ячеек изменяется. Когда нажата кнопка управления в интерфейсе пользователя MATLAB заканчивает автоматически обновляемую связь и сеанс связи DDE . (Для получения дополнительной информации о создании графического интерфейса пользователя, см. интерактивное MATLAB руководство, Создание Графического интерфейса пользователя.)
Читайте также: