Взаємодія з 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) робоча книга відкривається в режимі отримання даних.