Компоненты вкладки Servers



Компонент Описание
Курсор - это не компонент, а просто кнопка для быстрой отмены выбора какого-либо объекта.
Компонент TWordApplication - это сервер, с помощью которого осуществляется доступ к объекту Appication и запускается приложение Word.
Компонент TWordDocument - это специальный сервер документа, т.е. объекта, содержащегося в объекте TWordApplication. С помощью него удобно работать с объектом Document.
Компонент TWordFont- это специальный сервер, позволяющий работать со шрифтами в документе.
Компонент TWordParagraphFormat - это специальный сервер, позволяющий работать с форматами абзацев в выделенном тексте документа.
Компонент TExcelApplication - это сервер, с помощью которого осуществляется доступ к объекту Appication и запускается приложение Excel.
Компонент TExcelWorksheet - сервер, позволяющий работать с отдельными листами отдельной книги в Excel.

 

Компонент WordApplication – это сервер, с помощью которого осуществляется доступ к объекту Application и запускается приложение Word. Основные свойства данного компонента приведены в таблице 3.2.

Таблица 3.2

Свойства компонента TWordApplication

Свойство Описание
Property AutoConnect:Boolean; Определяет, должен ли сервер автоматически загружаться с началом выполнения приложения. True – соединение с сервером произойдет в момент начала выполнения приложения; False(по умолчанию) – соединение с сервером можно установить вызовом метода Connect.
Property AutoQuit:Boolean; Определяет, должен ли сервер автоматически выгружаться при завершении приложения. True – при завершении приложения автоматически вызывается метод, завершающий сервер. False(по умолчанию) – разъединение с сервером можно установить вызовом метода Disconnect
Property ConnectKind:TConnectKind; Определяет, как именно осуществляется соединение с сервером:
  • CkRunningOrNew (по умолчанию) - подключение к уже существующему серверу, или создает новый экземпляр сервера, при отсутствии такового. Этот вид взаимодействия между COM-сервером и контроллером наиболее часто применяется на практике;
  • CkNewInstance - при соединении с сервером каждый раз создается новый экземпляр;
  • CkRunningInstance - соединение устанавливается с уже запущенным COM-сервером;
  • CkRemote - это значение используется совместно со свойством RemoteMachineName, если необходимо подключиться к серверу на удаленной машине;
  • СkAttachToInterface - при установке этого значения интерфейс не создается и соответственно нельзя указывать значение True для свойства AutoConnect. Соединение с сервером производится с помощью метода ConnectTo.
 

 

Documents – представляющий из себя массив открытых на данный момент документов (Document). Соответственно у этого свойства есть свойство Count, показывающее общее количество открытых документов. Свойство только для чтения и используется для проверки, есть ли хоть один открытый документ. Создание нового документа осуществляется методом Add.

Visible – свойство, позволяющее делать видимым или невидимым документ в любом месте программы.

Selection – свойство, указывающее на позицию курсора или выделенный фрагмент текста в активном документе.

Dialogs – это коллекция объектов Dialogs, которые соответствуют встроенным диалогам Word.

TWordDocument – это специальный сервер документа, т.е. объекта, содержащегося в объекте TWordApplication. С помощью него удобно работать с объектом Document.

Объект документа Document имеет свойство Content, которое является объектом, отражающим весь текст. Это объект типа TRange со всеми соответствующими свойствами и методами.

Многие функции, выполняемые диалогами, могут вызываться как методы документа Document, если от пользователя не требуется активных действий. Сохранение активного документа в файле с заданным именем можно осуществить методом SaveAs, передавая в него как аргумент типа OleVariant имя файла вместе с путем доступа к нему. Если путь отсутствует, то файл сохраняется в текущем каталоге.

Компонент TExcelApplication – это сервер, с помощью которого осуществляется доступ к объекту Application и запускается приложение Excel.

Основные свойства компонента TExcelApplication аналогичны свойствам компонента TWordApplication.

Ниже приведены некоторые другие свойства и методы данного компонента.

Добавить новую книгу методом Add

ExcelApplication1.Workbooks.Add(EmptyParam,lcid);

В первый параметр этого метода можно передать строку, содержащую имя файла книги.

lcid – идентификатор локализации, в основном равен 0, но целесообразней передавать значения предназначенных для этого констант: LOCALE_USER_DEFAULT и LOCALE_SYSTEM_DEFAULT – идентификаторы текущего пользователя и системы соответственно.

· Добавить новый лист в существующую книгу методом Add объекта Workbook

ExcelApplication1.Worksheets.Add(Before,after,count,type,lcid);

где

before,after - объекты листа, после которого и перед которым осуществляется вставка, обычно достаточно задать один параметр,

count - определяет количество вставляемых листов,

type – тип вставки, при EmptyParam пустой, новый лист.

Установление числа добавляемых листов в создаваемой книге с помощью свойства SheetsInNewWorkbook

ExcelApplication1.SheetsInNewWorkbook[lcid]:=1;

Закрыть все книги методом Close

ExcelApplication1.Workbooks.Close(lsid);

· Закрыть конкретную книгу

ExcelApplication1.Workbooks[i].Close(SaveChanges,EmptyParam,EmptyParam,lcid);

где первый параметр определяет сохранять ли изменения, если True - значит сохранять, во втором параметре указывается имя файла в который необходимо сохранять изменения, если SaveChanges:=True и второй не указан, то появится диалог сохранения файла. Если вместо SaveChanges поставить EmptyParam, то пользователя спросят, нужно ли сохранить изменения. Хотя бывает, что срабатывает SaveChanges:=EmptyParam и SaveChanges:=false одинаково, и оба спрашивают, нужно ли сохранять изменения, третий параметр используется, когда книга предназначена для пересылки какому-то адресату.

· Печать книги с помощью метода PrintOut

ExcelApplication1.ActiveWorkBook.PrintOut(EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,LOCALE_USER_DEFAULT);

Visible – свойство, позволяющее делать видимым или невидимым документ в любом месте программы, оно тоже имеет этот же идентификатор (lsid = LOCALE_USER_DEFAULT), например:

ExcelApplication1.Visible[lcid]:=true;

· Range – объект, позволяющий работать с определенными ячейками. Причем этому объекту можно назначить не только одну ячейку, но и несколько, что очень удобно, когда нужно занести множество значений и не в одну ячейку. К тому же это произойдёт быстрее, т.к. соответственно обращений к серверу будет всего одно вместо нескольких.

Компонент TExcelWorkbook – сервер, позволяющий работать с отдельными книгами в Excel. Основные 4 свойства аналогичны свойствам TWordApplication. А другие некоторые свойства и методы данного компонента представлены ниже:

· Осуществить доступ к определенной книге через массив открытых книг Workbooks

i:=5; ExcelWorkbook1:=ExcelApplication1.Workbooks[i]; ExcelWorkbook1.Activate(lcid);// lcid= LOCALE_SYSTEM_DEFAULT

· Скопироватьлист в ту же книгу

var ran: OleVariant;...ran:=ExcelWorkbook1.ActiveSheet;ExcelApplication1.Sheets.Copy(ran,EmptyParam,0);

Компонент TExcelWorksheet - сервер, позволяющий работать с отдельными листами отдельной книги в Excel. Основные 4 свойства аналогичны свойствам TWordApplication.

Рассмотрим некоторые свойства и методы данного компонента.

· Удалить лист в книге методом Delete

ExcelWorksheet1.Delete(lcid); //lcid= LOCALE_SYSTEM_DEFAULT

· Вставить картинку

ExcelWorksheet1.Shapes. AddPicture ('полный путь доступа к картинке',1,1,10,4,30,50);

где 10 - отступ слева, 4 - отступ сверху, 30 – ширина, 50 – высота.

· Определить количество строк и столбцов

// Количество столбцов.caption:=inttostr(ExcelWorksheet1. UsedRange[0].Columns.Count);//Количество строк.caption:=inttostr(ExcelWorksheet1. UsedRange[0].Rows.Count);

· Установить ориентацию листа

ExcelWorksheet1.PageSetup. Orientation:=xlLandscape;//Альбомная.ExcelWorksheet1.PageSetup. Orientation:=xlPortrait; //Книжная.

· Задать имя листа

ExcelWorksheet1. Name:='Имя листа';

· Добавить линию

ExcelWorksheet1. Shapes.AddLine (х1,у1,х2,у2);

где х1,у1 – координаты начала линии, х2,у2 – координаты конца линии.

· Добавить фигуру

ExcelWorksheet1. Shapes.AddShape (Type:Integer,х1,у1,х2,у2);

где type – задает тип фигуры, х1,у1 – координаты левого верхнего угла, х2,у2 – правого нижнего угла.

Пример. Рассмотрим пример экспорта данных в Excel, полученных на основе запроса ADOQuery1 и размещенных в визуальном компоненте DBGrid1.

Этот процесс выполняется в обработчике события нажатия на кнопку btnExport.

Uses ComObj;

 

Procedure Tform5. btnExportClick(Sender:TObject);

Var

BeginCol, BeginRow,i,j: integer;

ExcelApp, Workbook, Range, Cell1, Cell2, ArrayData: Variant;

 

Begin

 

BeginCol:= 1; BeginRow:=2;

RowCount:=1+Form4.ADOQuery1.RecordCount;

ColCount:= DBGrid1.Columns.Count;

 

ExcelApp:= CreateOleObject('Excel.Application');

ExcelApp. Application.EnableEvents:= false;

 

Workbook:= ExcelApp.WorkBooks.Add(ExtractFilePath(Application.ExeName) +

'\Reports\table.xls’);

 

ArrayData:= VarArrayCreate([1, RowCount, 1, ColCount], varVariant);

DBGrid1.DataSource.DataSet.First;

for i:= 1 to RowCount do begin

begin

for j:= 1 to ColCount do

ArrayData[i, j]:= DBGridl.Fields[j-1]. AsString;

DBGrid1.DataSource.DataSet.Next;

End;

Cell1:= WorkBook.Worksheets[1].Cells[BeginRow, BeginCol];

Cell2:= WorkBook.Worksheets[1].Cells[BeginRow+RowCount-1, BeginCol+ ColCount-1];

Range:= WorkBook.Worksheets[1].Range[Cell1, Cell2]; //выделение диапазона Excel

Range.Value:= ArrayData; //заполнение выделенного диапазона

ExcelApp.Visible:= true; // приложение Excel становится видимым

 

End;


Дата добавления: 2015-12-21; просмотров: 17; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!