Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект_укр.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆
  1. Формування таблиці

Робота із шаблонами, розглянута вище, дозволяє створювати звіт тільки для окремого запису таблиці. Набагато частіше звіт створюється для декількох записів одночасно. При цьому дані представляються на одному аркуші у вигляді таблиці-списку. Для розгляду принципу формування списку у вигляді таблиці нам знадобиться ще ряд властивостей і методів сервера Microsoft Excel.

Для звертання до чарунки аркуша використовують властивість:

e.activeworkbook.sheets.item[i].cells[j,k].value

де i - номер рядка, j - номер стовпця.

Для виділення чарунки використовують команду:

e.activeworkbook.sheets.item[i].range['діапазон'].select;

У якості діапазону може виступати як окрема чарунка, так і діапазон чарунок, наприклад:

e.activeworkbook.sheets.item[i].range['A1'].select; //виділяється одна чарунка

e.activeworkbook.sheets.item[i].range['A1:D5'].select; //виділяється діапазон чарунок

Для копіювання виділеного діапазону використовують команду:

e.activeworkbook.sheets.item[i].range['діапазон'].copy;

Для вставки скопійованої інформації з буфера використовують команду:

e.activeworkbook.sheets.item[i].paste;

Приклад. Нехай є шаблон spisok.xlt, який знаходиться в теці shablon. Шаблон має шапку таблиці з полями № з/п, прізвище, ім'я, дата народження. Шапка розташована в першому рядку аркуша.

На підставі даних таблиці БД сформувати список із записів.

try

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

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

except

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

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

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

end;

 

//виключаємо повідомлення excel

e.displayalerts:=false;

 

//створюємо нову книгу на підставі шаблону

e.workbooks.add(extractfilepath(application.Exename)+'shablon\spisok.xlt');

 

//виділяємо шапку таблиці в 1 рядку

e.activeworkbook.sheets.item[1].range['a1:e1'].select;

//копіюємо виділену шапку в буфер обміну

e.activeworkbook.sheets.item[1].range['a1:e1'].copy;

//переходимо на перший запис таблиці

adotable1.first;

//i - номер рядка, у якому перебуває шапка таблиці

i:=1;

//n - номер рядка в списку

n:=0;

//організовуємо цикл по таблиці

while not adotable1.eof do

begin

    //збільшуємо число рядків у таблиці   

    i:=i+1;

    //збільшуємо число виведених записів

    n:=n+1;

    //виділяємо першу чарунку в наступному рядку   

    e.activeworkbook.sheets.item[1].range['a'+inttostr(i)].select;

    //вставляємо у виділену чарунку скопійовану шапку таблиці

    e.activeworkbook.sheets.item[1].paste;

    //у стовпчик № з/п вставляємо значення лічильника записів

    e.activeworkbook.sheets.item[1].cells[i,1].value:=n;

      //у стовпчик прізвище вставляємо значення поля fam таблиці БД

    e.activeworkbook.sheets.item[1].cells[i,2].value:=adotable1.fieldbyname('fam').asstring;

    //у стовпчик ім'я вставляємо значення поля imya таблиці БД

    e.activeworkbook.sheets.item[1].cells[i,3].value:=adotable1.fieldbyname('imya').asstring;

    //у стовпчик Дата народження вставляємо значення поля datar таблиці БД

    e.activeworkbook.sheets.item[1].cells[i,4].value:=adotable1.fieldbyname('datar').asstring;

    //переходимо на наступний запис у таблиці   

    adotable1.Next;

end;

 

Робота із формулами

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

Для введення формули використовують властивість виду:

e.activeworkbook.sheets.item[1].cells[i,j].formula:='=текст формули';

При введенні формул потрібно враховувати ряд особливостей:

  • ім'я чарунки записується у вигляді RiCj - де i - номер рядка, а j - номер стовпця;

  • кожна функція Excel записується в її англомовному варіанті.

Наприклад. У чарунці A3 порахувати суму чарунок A1 і A2.

e.activeworkbook.sheets.item[1].cells[1,3].formula:='=r1c1+r1c2';

Нехай у чарунках A1:A6 знаходяться деякі числові значення. Необхідно порахувати суму значень у цих чарунках і відобразити результат у чарунці А7.

 

e.activeworkbook.sheets.item[1].cells[7,1].formula:='=sum(r1c1+r6c1)';

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