Задание: Разбираемся с работой в "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
Если у Вас возникли вопросы, идеи, предложения или какие-либо мысли, пишите, не стесняйтесь!