Excel у Delphi

Отже, сьогодні розберемося як зробити наш листExcel красивішим, а саме розберемося з такими питаннями:

1. Як дістатися до конкретного кордону осередку?

діапазону
Перед Вами вікно зміни формату осередків. Вкладка "Кордони". Як бачитеExcel може малювати такі межі осередків:

  • верхню
  • нижню
  • ліву
  • праву
  • діагональну з верхнього лівого кута в нижній правий
  • діагональну з верхнього правого кута в нижній лівий

Якщо Ви вибираєте діапазон осередків, додатково додаються ще два види кордонів:

  • внутрішні горизонтальні
  • внутрішні вертикальні.

Крім цього, Ви можете визначити свій стиль ліній для промальовування та колір ліній. У самомуExcel робота з форматом осередків досить прозора і ясна. А ось при роботі зExcel в Delphi все не так вже й райдужно :)

Перш ніж братися за промальовування кордонів, слід визначитися – який об'єкт Ви використовуватимете. Ви можете промалювати кордон за допомогою об'єктів:

Я зазвичай використовую третій варіант (UsedRange), тому що працюю зформатами осередків після того, як перешлю необхідні дані вExcel. Крім того, якщо пересилається велика таблиця з даними, то використовувати Cells - значить дуже сильно "підвісити" свою програму, так як треба буде дістатися кожної комірки і змінити її формат.

Отже, використовуватимемо UsedRange. Тепер розберемося, як нам дістатися до кордонів.

Для того, щоб отримати доступ до колекції меж об'єкта, достатньо скористатися об'єктом Borders. Оскільки нам необхідний доступ не до всіх кордонів, а лише до конкретного, тоПісля Borders необхідно вказувати індекс кордону. УExcel визначено такі константи:

xlDiagonalDown5Діагональна від верхнього лівого кута в нижній правий кожного осередку в діапазоні
xlDiagonalUp6Діагональна з нижнього лівого кута в правий верхній кожній клітинці в діапазоні.
xlEdgeBottom9Нижня для всього діапазону осередків
xlEdgeLeft7Ліва для всього діапазону осередків.
xlEdgeRight10Права для всього діапазону осередків.
xlEdgeTop8Верхня для всього діапазону осередків.
xlInsideHorizontal12Горизонтальні межі всіх внутрішніх осередків діапазону
xlInsideVertical11Вертикальні межі всіх внутрішніх осередків діапазону

Тепер переносимо ці константи в наш модуль роботи зExcel :

І для того, щоб отримати доступ, наприклад, до нижньої межі діапазону осередків, пишемо наступний код:

Аналогічно Ви можете отримати доступ до будь-якої з восьми кордонів.

2. Як змінити зовнішній вигляд кордону?

Доступ до кордону отримано. Тепер можна починати зміну зовнішнього вигляду.

Об'єкт Borders має такі властивості:

  • LineStyle – стиль лінії кордону
  • ColorIndex – індекс кольору кордону
  • Weight – товщина кордону

Для кожного з цих властивостей уExcel визначено свої лічильники (Enumerators) або, говорячи мовою Delphi – константи.

Стилі ліній (LineStyle) можуть бути такі:

xlContinuous1Безперервна лінія
xlDash-4115Пунктирна лінія
xlDashDot4Пунктир з точкою
xlDashDotDot5Пунктир з двома точками, що йдуть поспіль.
xlDot-4118Лінія з точок
xlDouble-4119Подвійна лінія
xlLineStyleNone-4142Без ліній
xlSlantDashDot13Похила пунктирна

Стандартні індекси кольорів, які можна використовувати при промальовуванні кордону представлені малюнку:

Excel

Для товщини лінії визначено константи:

xlHairline1Найтонша межа
xlMedium-4138Середня товщина
xlThick4Товста межа
xlThin2Тонка межа

Визначте ці константи у своєму модуліDelphi і можете приступати до промальовування кордонів. Наприклад, нам необхідно промалювати зовнішні межі таблиці подвійною лінією, а внутрішні – тонкими суцільними. Кольори ліній залишимо за замовчуванням – чорними. Тоді кодDelphi буде виглядати так:

Аналогічно можна змінювати межі окремих осередків і діапазонів, наприклад виділити шапку таблиці або зробити перекресленою верхню ліву комірку і т.д.

Переходимо до наступного питання.

3. Як зробити заливку осередків кольором?

Для заливки осередків кольором можна використовувати ті ж константи, що і при роботі зосередками. Однак ні об'єкт Range ні Cells не мають властивості ColorIndex. Щоб отримати доступ до заливки комірки або діапазону, необхідно скористатися властивістю Interior, яка дає доступ до внутрішньої частини об'єкта. Наприклад, виконавши операцію:

ви отримаєте доступом до внутрішньої частини діапазону зайнятих осередків, тобто. по суті, до всієї таблиці. А отримавши такий доступ, Ви можете робити з об'єктом все, що завгодно. Наприклад змінимо колір нашої таблиці на червоний:

4. Як змінити шрифт у комірках?

Для того, щоб отримати доступ до шрифтів, необхідно дістатися однієї з властивостей UsedRange, а саме до властивості Font, яка і поверне нам об'єкт, що дозволяє змінювати шрифт, колір шрифту та інші атрибути . Наприклад, змінимо колір шрифту в таблиці на синій:

Аналогічно, через об'єкт Font Ви можете також змінити:

  • Товщину шрифту
  • Нахил
  • Розмір
  • Зробити текст підкресленим тощо.

Для цього достатньо скористатися однією з властивостей об'єкту Fonts.