Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6_Excel+Delphi.doc
Скачиваний:
0
Добавлен:
06.09.2019
Размер:
94.72 Кб
Скачать

Inc(Index);

Table.Next;

end;

Це просто загальний приклад не пов'язаний з програмою. Тут так само запускається цикл по всім рядкам таблиці. Але виведення даних відбувається по новому. Для цього запускається ще один цикл від 1 до кількості колонок в сітці DBGrid. А усередині цього циклу робиться привласнення черговій колонці Excel, значення з такої ж колонки сітки DBGrid:

Sheet.Cells[Номер строки, Номер колонки]:=

DBGrid.Fields[Номер колонки в сетке].AsString;

Цей спосіб більш універсальний і може підійти майже завжди, коли треба вивести весь вміст сітки DBGrid і всі дані одного типа. У нашому випадку в таблиці є дата, тому, щоб вона красиво виглядала, її треба відформатувати за допомогою FormatDateTime. Отже пряме перенесення для цієї колонки було б не дуже зручне, але останні колонки можна було б перенести вказаним способом.

В процесі виведення даних можна змінювати колір рядків Sheet.Rows[строка].Font.Color або колонок Sheet.Columns[колонка]. Font.Color, простим привласненням (як це робилось при форматуванні). Якщо потрібно змінити колір окремої комірки, то це можна зробити, присвоївши нове значення в Sheet.Cells[строка,колонка].Font.Color.

Ось ще деякі параметри, які можна змінювати:

Sheet.Cells[строка,колонка].Font.Italic - курсивний шрифт

Sheet.Cells[строка,колонка].Font.Bold - жирний шрифт

Sheet.Cells[строка,колонка].Font.Underline – шрифт, який підкреслюється

Sheet.Cells[строка,колонка].Font.Size - розмір шрифта

За допомогою всього цього, можна створювати прості, але ефективні звіти. У Delphi, в директорії Lib є файл excel97.pas, в якому знаходяться всі доступні функції Excel.

А в нашої програми залишився один недолік – вона виводить дані лише з основного довідника, і не враховує телефони. Щоб позбавитися від цього недоліку можна написати окремий запит SQL, який формуватиме зведену таблицю з двох таблиць. Цей запит можна помістити в окремий компонент ADOQuery, виконати його і брати дані звідти, а не з таблиці BookTable.

Ось приклад запиту, який вибирає всі рядки з двох таблиць, формуючи окрему базу даних.

SELECT *

FROM Справочник, Телефоны

WHERE Справочник.Key1=Телефоны.LinkKey

На рис. 1 можна побачити результат роботи програми:

Рис. 1 Створення звітності в Excel

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]