Вторник, 21.05.2024, 03:08
AMAR Inc.
Приветствую Вас Гость | RSS
Главная Программирование Регистрация Вход
Меню сайта

Категории каталога
Разные статьи [48]
Система [62]

Главная » Статьи » Delphi » Разные статьи

Экспорт документов в Excel
   Эта статья первая из цикла статей посвященных экспорту документов в MS Excel. В ней мы рассмотрим подключение к Excel, заполнению ячеек и простейшее оформление документа. Я не буду углубляться в теорию, рассказывать о том как работает OLE механизм, начнем с самого главного.

Подключение.

   Для подключения к Excel и работы с ним нам понадобится переменная типа Variant: Excel:Variant;

   Далее создаем OLE объект: Excel:=CreateOleObject('Excel.Application');

   Добавляем новую книгу: Excel.Workbooks.Add;

   Показываем Excel: Excel.Visible:=true;

   Так же нам понадобятся константы:
const xlContinuous=1; xlThin=2; xlTop = -4160; xlCenter = -4108;

Текст ячеек.

   Теперь до любой ячейки мы можем добраться следующим образом:
Excel.ActiveWorkBook.WorkSheets[1].Cells[1, 2]:='Текст ячейки (1,2)';
   Объект Range, выделение диапазона, объединение ячеек, выравнивание.

   Представьте такую ситуацию: необходимо объединить несколько ячеек и выровнять текст в них по центру.

   Выделяем:
Excel.ActiveWorkBook.WorkSheets[1].Range['A1:G1'].Select;

   Объединяем:
Excel.ActiveWorkBook.WorkSheets[1].Range['A1:G1'].Merge;

   И выравниваем:
Excel.Selection.HorizontalAlignment:=xlCenter;

Границы и перенос по словам.

   Для начала выделяем нужный диапазон а затем... Показываем границы:
Excel.Selection.Borders.LineStyle:=xlContinuous;
Excel.Selection.Borders.Weight:=xlThin;

   И включаем перенос по словам:
Excel.Selection.WrapText:=true;

Пример.

   Пример можно скачать здесь

Параметры страницы.

   Начнем с полей страницы. Во первых для того чтобы добраться до параметров страницы у листа Excel имеется свойство объект PageSetup его мы и будем использовать. Для установки размеров полей необходимо изменить соответствующие свойства PageSetup, вот эти свойства:
LeftMargin - Левое поле
RightMargin - Правое поле
TopMargin - Верхнее поле
BottomMargin - Нижнее поле
   Значение размеров полей необходимо указывать в пикселях, к чему мы не очень привыкли, поэтому воспользуемся функцией InchesToPoints объекта Application, которая переводит значение в дюймах в значение в пикселях. Теперь напишем процедуру которая подключит Excel и установит поля равные 0.44 дюйма (приблизительно 1 см):

procedure Connect;
var
Excel:Variant;
begin
Excel:=CreateOleObject('Excel.Application');
Excel.Workbooks.Add;
Excel.ActiveSheet.PageSetup.LeftMargin:= Excel.Application.InchesToPoints(0.44);
Excel.ActiveSheet.PageSetup.RightMargin:= Excel.Application.InchesToPoints(0.44);
Excel.ActiveSheet.PageSetup.TopMargin:= Excel.Application.InchesToPoints(0.44);
Excel.ActiveSheet.PageSetup.BottomMargin:= Excel.Application.InchesToPoints(0.44);
end;

   Иногда полезно уметь установить и ориентацию страницы:
Excel.ActiveSheet.PageSetup.Orientation:= 2;

   Здесь значение ориентации = 2, означает альбомную, при книжной ориентации присвойте Orientation значение 1.

   Вы наверное не раз встречали такой отчет в котором таблица с большим количеством строк размещается на нескольких страницах в таких случаях очень удобны сквозные строки, они печатаются на каждой странице отчета:
Excel.ActiveSheet.PageSetup.PrintTitleRows:='$2:$3';

   Здесь мы указываем вторую и третью строки для печати на каждой странице.

Шрифты и цвета.

   Для установки шрифта и размера текста выделите нужный диапазон и установите свойство Name объекта-свойства Font объекта Selection или свойство Size для изменения размера:
Excel.ActiveWorkBook.WorkSheets[1].Range['F1'].Select;
Excel.Selection.Font.Name:='Courier New';
Excel.Selection.Font.Size:=18;

   Если Вы хотите установить жирный или, например, наклонный стиль написания текста установите соответствующие свойства:
Excel.ActiveWorkBook.WorkSheets[1].Range['G1'].Select;
Excel.Selection.Font.Bold:=true; // Для жирного текста
Excel.Selection.Font.Italic:=true; // Для наклонного текста

   Для указания цвета текста измените свойство ColorIndex все того же объекта Font:
Excel.ActiveWorkBook.WorkSheets[1].Range['A1'].Select;
Excel.Selection.Font.ColorIndex:=3;

   Вот несколько индексов цветов:
  • Индекс - Цвет
  • 0 - Авто
  • 2 - Белый
  • 3 - Красный
  • 5 - Синий
  • 6 - Желтый
  • 10 - Зеленый
   Для изменения цвета фона ячейки используйте объект Interior свойства Selection:
Excel.ActiveWorkBook.WorkSheets[1].Range['H1'].Select;
Excel.Selection.Interior.ColorIndex:=3; // Цвет

Колонтитулы.

   Для добавления колонтитула к документу достаточно указать его содержание:
Excel.ActiveSheet.PageSetup.LeftFooter:='Левый нижний колонтитул';
Excel.ActiveSheet.PageSetup.CenterFooter:='Центральный нижний колонтитул';
Excel.ActiveSheet.PageSetup.RightFooter:='Правый нижний колонтитул';
Excel.ActiveSheet.PageSetup.LeftHeader:='Левый верхний колонтитул';
Excel.ActiveSheet.PageSetup.CenterHeader:='Центральный верхний колонтитул';
Excel.ActiveSheet.PageSetup.RightHeader:='Правый верхний колонтитул';

   Для изменения размера шрифта добавьте к колонтитулу управляющий символ "&" и размер шрифта:
Excel.ActiveSheet.PageSetup.LeftFooter:='&7Левый нижний колонтитул';


Категория: Разные статьи | Добавил: amar-runyak (22.09.2007)
Просмотров: 5407 | Комментарии: 1 | Рейтинг: 4.0/1 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Поиск

Друзья сайта

Статистика

Copyright AMAR Inc. © 2024