Взаємодія з Excel, за допомогою OLE об’єктів у Delphi

Розберемо взаємодію Delphi з Excel з допомогою OLE об'єктів, з прикладу програми Statistic.

Вихідний код програми можна завантажити на сторінці програми або за посиланням: Statistic_source.

У цій програмі звернення до Excel відбувається у двох місцях. При додаванні нового шаблону форми до програми та обчисленнях.

Розберемо як відбувається додавання форми до програми:

*Плагін, що відображає код не правильно відображає символи \' тому між цими символами я поставив пробіл насправді цей пробіл не потрібен

Додавання форми відбувається при натисканні кнопки. Після цього має відкритися екселевський файл, у якому перевіряються всі заповнені осередки наявність осередків зі стилями sum, mean і set. Позиції даних осередків записуються у файл для подальшого використання.

Розглянемо код детальніше:

у цій роцедурі ми будемо користуватися змінною XLApp типу - variant.

Оголошена в класі TMain - unit Statistic_U;

Також ми оголошуємо файл даних. Тип даних буде integer

Щоб почати працювати з OLE об'єктами треба для початку створити Com об'єкт:

Синтаксис цієї функції наступний:function CreateOleObject(const ClassName: string): IDispatch;

Тобто у функції ми вказуємо ім'я класуClassNam у вигляді string а на виході функції ми отримуємо ID даного об'єкта.

Після цього ми забороняємо показувати різні повідомлення користувачу. Встановлюючи властивістьDisplayAlerts Com об'єкта в стан false

Далі ми можемо відкрити файл Excel, який ми вибрали на початку нашої процедури:

Дану операцію ми робимо використовуючи метод Open Робочої книги:

Даний метод має наступний ситнтаксис:.

FileName — ім'я файлу, який треба відкрити.

ReadOnly - якщо вказано, як true. Цей файл буде відкритий тільки для читання.

Format — якщо відкривається текстовий документ, то в цьому параметрі можна вказати символ роздільника, інакше використовується символ роздільника за замовчуванням.

WriteResPassword — Якщо у файлі стоїть пароль на запис, а нам треба змінити дані, то тут можна вказати пароль у вигляді рядка. За замовчуванням користувачеві буде поставлено запитання.

IgnoreReadOnlyRecommended — Якщо файл був збережений з рекомендацією, лише для читання. Якщо встановити значення True у цей параметр, то користувачеві не з'явиться це повідомлення.

Origin - Якщо відкривається текстовий файл, то тут можна вказати місце його створення є три варіанти: xlMacintosh, xlWindows, or xlMSDOS. За промовчанням використовуватиметься поточна операційна система. Цей параметр допомагає правильно визначити кінець рядка.

Delimiter — Тут можна вказати символ роздільника для вкладок. При цьому якщо внести рядок, то буде використовуватися перший символ.

Editable — Ця установка не працює для версій Microsoft Excel 5.0 і вище. Вона визначала стан видимості документа після відкриття.

Notify — якщо необхідно відкрити файл на читання, але це не можливо то при вказівці цього значення в true файл додасться до списку повідомлень, і коли це стане можливим користувачеві відобразиться повідомлення. При значенні false файл не може відкритися.

Converter -за допомогою цього аргументу можна використовувати файли конвертери.

AddToMru — якщо значення вказано як true книга додасться до списку тих, хто нещодавно відкривався, за замовчуванням стоїть false.

Local — якщо використовується значення true, зберігає файли з мовними налаштуваннями Microsoft Excel (включаючи параметри панелі керування). Якщо вказати значення false — збереження файлів з мовними параметрами Visual Basic. За промовчанням використовується збереження файлів з мовними параметрами Visual Basic.

CorruptLoad - приймає три значення xlNormalLoad (0) робоча книга відкривається «Нормально» , xlRepairFile (1) робоча книга відкривається в режимі відновлення, xlExtractData (2) робоча книга відкривається в режимі отримання даних.