Экспорт документов в Excel 1
Экспорт документов в Excel 1
Экспорт документов в 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 Источник: http://asportal.h16.ru