Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по Delphi

  Все выпуски  

Уроки по Delphi


Информационный Канал Subscribe.Ru


Исходники лежат тут: Delphi::WAP::Moto E-365

*Номер 13* (2004-04-26)

Урок 15.

Задание: Разбираемся с работой в "Excel". Создаем в нем таблицу лучших игроков.

Итак, для начала добавим две библиотеки для работы с "Excel". Это: OleServer и ComObj. Теперь в меню "Настройки" создадим новый пункт "Excel". Нажимаем на него и в обработчике пишем:

procedure TForm1.Exel1Click(Sender: TObject);
var
XLApp, Sheet, Colum: Variant;
i: Integer;
begin
// Создаем "Excel"-приложение
XLApp := CreateOleObject('Excel.Application');
// Делаем его видимым
XLApp.Visible := True;
XLApp.Workbooks.Add(-4167);
// Даем листу имя
XLApp.Workbooks[1].WorkSheets[1].Name := 'Отчёт';
// Для уменьшения длины команд, создаем промежуточную переменную
// Будем работать со столбцами
Colum := XLApp.Workbooks[1].WorkSheets['Отчёт'].Columns;
// Задаем ширину столбца. В "Excel" номера ячеек (столбцов, строк)
// начинается с "1", а не с "0".
Colum.Columns[1].ColumnWidth := 20;
Colum.Columns[2].ColumnWidth := 8;
Colum.Columns[3].ColumnWidth := 13;
// Теперь поработаем со строками
Colum := XLApp.Workbooks[1].WorkSheets['Отчёт'].Rows;
// Шрифт первой строки сделаем жирным
Colum.Rows[1].Font.Bold := True;
// а цвет - синим
Colum.Rows[1].Font.Color := clBlue;
// Размер шрифта задается так
Colum.Rows[1].Font.Size := 14;
// Высоту строки изменим на 20 пикселей
Colum.Rows[1].RowHeight := 20;
// Теперь будем работать с ячейками
Sheet := XLApp.Workbooks[1].WorkSheets['Отчёт'];
// Пишем в ячейку (1,2), где
// 1 - номер строки,
// 2 - номер столбца.
Sheet.Cells[1, 2] := '10-ка лучших';
// Теперь выроним текст по центру по вертикали и горизонтали
// Параметр "HorizontalAlignment" может иметь значения:
// 1 - по значению
// 2 - по левому краю
// 3 - по центру
// 4 - по правому краю
// 5 - с заполнением
// 6 - по ширине
// 7 - по центру выделения
// 8 - распределенный
// Параметр "VerticalAlignment" может иметь значения:
// 1 - верх
// 2 - по центру
// 3 - по низу
// 4 - по высоте
// 5 - распределенный
Sheet.Cells[1, 2].VerticalAlignment := 2;
Sheet.Cells[1, 2].HorizontalAlignment := 3;
// Теперь объединим ячейки, и посмотри второй способ указывания группы ячеек
Sheet.Range['A1:C1'].Merge;

// Занесем данные в таблицу
for i := 1 to 10 do
begin
Sheet.Cells[i + 2, 1] := Lst[i].Name;
Sheet.Cells[i + 2, 2] := Lst[i].score;
Sheet.Cells[i + 2, 3] := Lst[i].Nagr;
end;
// Немножко оформим таблицу
for i := 1 to 5 do
begin
// Каждую четную строку напишем жирным шрифтом
Colum.Rows[i * 2 + 2].Font.Bold := True;
// Каждую нечетную выделим цветом
Sheet.Cells[i * 2 + 1, 1].Interior.ColorIndex := '15';
Sheet.Cells[i * 2 + 1, 2].Interior.ColorIndex := '15';
Sheet.Cells[i * 2 + 1, 3].Interior.ColorIndex := '15';
{3-clred,6-clyellow,50-clgreen,41-lcblue,15-clgrey}
end;

// Напоследок обведем ячейки пером с толщиной 3 пикселя
// Номера границ ячеек:
// 1 - лево
// 2 - право
// 3 - верх
// 4 - низ
Sheet.Range['a3:c12'].Borders[1].Weight := 3;
Sheet.Range['a3:c12'].Borders[2].Weight := 3;
Sheet.Range['a3:c12'].Borders[3].Weight := 3;
Sheet.Range['a3:c12'].Borders[4].Weight := 3;
end;

На сегодня все. В следующий раз поработаем с "Word".
Тексты всех предыдущих уроков и самих исходников
можно скачать с http://mywap-f1.h12.ru
Если у Вас возникли вопросы, идеи, предложения или какие-либо мысли, пишите, не стесняйтесь!

© Юрий М. Крылов, 2004.®(13)

Рассылка comp.soft.prog.delphibegin (c)2003-2004 Крылов Ю.М.
Выпуск 13 от 2004-04-26
Подписчиков - 8
Рассылки Subscribe.Ru
Новости сайта My.WAP.F1
На моем сайте можно найти выпуски:
Урок 1
Урок 3
Урок 4
Урок 5
Урок 6
Урок 8
Урок 9
Урок 10

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное