русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Операції з Com-Сервером Microsoft Excel


Дата додавання: 2014-10-07; переглядів: 908.


Функція, що реалізує механізм доступу до COM-об'єкту, знаходиться у модулі Comobj, який повинен бути підключений у коді модуля.

Потім потрібно описати змінну (краще глобальну) для зберігання посилання на сервер у вигляді:

var e:variant;

Після опису змінної можна створити новий об'єкт COM-сервера за допомогою команди:

e:=createoleobject('excel.application');

Після виконання цього оператора додаток Excel запуститься, але його вікно не відобразиться на екрані монітора. У диспетчері завдань у списку процесів можна побачити, що процес excel.exe запущений і знаходиться в пам'яті комп'ютера.

Щоб вікно програми стало видимим необхідно встановити властивість:

e.visible:=true;

При формуванні звітів властивість Visible краще встановити в значення True тільки для відображення повністю створених книг. Так можна скоротити час створення звітів і підвищити продуктивність роботи додатків.

Запуск або підключення до Excel

Ми розглянули приклад створення нового об'єкта для запуску копії Microsoft Excel. Однак такий підхід має недолік: якщо Excel уже буде запущений користувачем, то виклик функції createoleobject('excel.application') запустить нову копію програми, що веде до нераціональної витрати пам'яті комп'ютера. Для вирішення даної проблеми потрібно мати на увазі, що є функція, яка не створює об'єкт, а підключається до вже існуючого:

e:=getactiveoleobject('excel.application');

Тому перед використання COM-сервера Excel доцільно виконувати створення об'єкта або підключення до об'єкта залежно від стану програми Excel. Правильний підхід при звертанні до Excel наступний:

try

//підключаємося до excel

e:=getactiveoleobject('excel.application');

except

//якщо підключення не вдалося (excel не запущений)

//створюємо новий об'єкт, запускаючи excel

e:=createoleobject('excel.application');

end;

Зазначений код за замовчуванням коректно працює тільки при запуску exe файлу програми. При запуску проекту буде видаватися помилка.

Для роботи коду під час запуску проекту потрібно виконати настроювання Delphi: виконайте команду Tools-Debugger Options, на закладці Language Exception зніміть прапорець Stop On Delphi Exception. Зверніть увагу, що залишати дане настроювання виключеним не рекомендується, тому що після цього Delphi не буде видавати інформативних повідомлень про помилки при невірній роботі програм.

 


<== попередня лекція | наступна лекція ==>
Вставка малюнків і їх форматування | Робота із книгами в Microsoft Excel


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн