Экспорт документов в 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Левый нижний колонтитул';  

Автор: JB
Теги:
Excel
Добавлено: 07 Августа 2018 21:26:49 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...