Организация взаимодействия с приложениями Microsoft Office в Delphi

Средства автоматизации в офисных приложениях. Различные подходы создания отчётов в Word. Управление офисными приложениями в проектах Delphi. Стандартные и пользовательские макросы. Управление объектами Word и Excel 2000. Создание цифрового сертификата.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 27.01.2013
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Подключение к активному или создание нового экземпляра объекта Excel:

try

Excel:=GetActiveOleObject('Excel.Application');

except

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

Excel.visible:=true;

end;

Открытие новой рабочей книги осуществляется оператором

WorkBook := Excel.WorkBooks.Add;

В результате переменная WorkBook обеспечит доступ к новой книге.

Новая книга создается с числом листов по умолчанию. Это число можно изменить с помощью свойства SheetsInNewWorkbook. Например, следующий оператор задает число листов по умолчанию, равное 1.

Excel.SheetsInNewWorkbook := 1 ;

Открыть рабочую книгу, хранящуюся в указанном пользователем файле можно оператором:

if OpenDialogl.Execute

then WorkBook := Excel.WorkBooks.Open(OpenDialogl.FileName);

Закрыть рабочую книгу можно оператором WorkBook.Close;

Если в книге были сделаны изменения, то в результате выполнения приведенного оператора будет показан запрос о необходимости сохранения книги. Если вме-:то приведенного оператора вы напишете:

WorkBook.Close(SaveChanges := false);

то ни запроса, ни сохранения не будет. А оператор вида:

WorkBook.Close(SaveChanges := true, FileName := 'WorkBookl');

сохранит измененную рабочую книгу в файле с указанным именем WorkBookl.xls.

Следующие операторы соединяют переменную Worksheet с листом, имеющим имя «Лист1» и делают этот лист активным:

Worksheet := WorkBook.Worksheets.Item['Лист1']; Worksheet.Activate;

Следующие операторы соединяют переменную Worksheet с активной книгой, выделяют на его активном листе ячейку, имя которой задано в окне редактирования Editl (например, "А1"), и заносят в эту ячейку значение, заданное в окне редактирования Edit2 полужирным красным шрифтом:

Worksheet := WorkBook.ActiveSheet;

MyRange := WorkSheet.Range[Editl.Text];

MyRange.Value := Edit2.Text;

MyRange.Font.Bold := true;

MyRange.Font.Color := clRed;

Ниже приведены аналогичные операторы, читающие данные из указанной ячейки:

Worksheet := WorkBook.ActiveSheet;

MyRange := WorkSheet.Range[Editl.Text];

V := MyRange.Value;

ShowMessage(V);

Занесение множества данных в совокупность ячеек ничем.

Работа с диалогами Excel не требует задания значений необязательных параметров. Например, вызов диалога открытия файла рабочей книги осуществляется следующим оператором:

Excel.Dialogs[xlDialogOpen].Show;

Вызов диалога печати осуществляется оператором:

Excel.Dialogs[xlDialogPrint].Show;

Впрочем, печать можно осуществлять и без диалога методом Printout:

Excel.ActiveSheet.Printout;

Приведенный оператор печатает одну копию активного листа. Но можно задавать и параметры печати. Например, следующий оператор обеспечивает предварительный просмотр печатаемого документа и последующую печать двух копий:

Excel.ActiveSheet.Printout(Preview : = true, Copies := 2);

А просто предварительный просмотр активного листа перед печатью осуществляется оператором:

Excel.ActiveSheet.PrintPreview;

Аналогичным образом с помощью автоматизации OLE можно получить доступ к Access. Конечно, все, что можно сделать в Access, можно сделать и в Delphi, причем более эффективно. Но если пользователь привык работать со средой Access, то может иметь смысл предоставить ему возможность вызвать знакомый инструмент из приложения Delphi. Конечно, при этом всю обработку данных целесообразно проводить в фоновом режиме с помощью приложения Delphi.

Связь с Access можно реализовать следующим образом:

uses ComObj, Access2000;

var Access: OleVariant;

Access := CreateOleObject('Access.Application');

Access.Visible := true;

Ну а все дальнейшее делается с помощью объектов Access, их свойств, методов и событий. Информацию обо всем этом можно почерпнуть из справки по VBA, встроенной в Access.

Заключение

Приведенных примеров кода должно быть достаточно для начала разработки простейших приложений с помощью автоматизации OLE. Простота программного кода здесь обеспечивается отсутствием необходимости задавать значения необязательных параметров. Перечисление параметров в вызове метода допускается в любой последовательности. В целом использование автоматизации OLE очень близко к VB и все не рассмотренные выше возможности работы с Word и Excel учащиеся легко могут реализовать, познакомившись со встроенной в MS Office справкой по программированию.

Вопросы, затронутые в данной работе, могут быть полезными при проведении практических занятий по программированию и информационным технологиям. Материал доступен старшеклассникам и студентам первых курсов увлекающихся программированием. В школьном курсе информатики и ИКТ тема может быть раскрыта в рамках элективных курсов. Так что учащиеся, освоившие технологию управления офисными приложениями, смогут разрабатывать свои учебно-прикладные программы, используя расширенные средства офисных пакетов, и совершенствуя навыки, необходимые в будущей профессиональной деятельности.

Отметим так же, что встроенные средства автоматизации есть во многих профессиональных программных пакетах, таких как - графический редактор Corel Draw, системе трехмерного моделирования 3D Max, в системе AutoCAD, в пакете программ 1С Предприятие и многих других. Поэтому опыт, решения задач автоматизации операций в офисных пакетах, будет полезен в работе во многих других областях и сферах применения информационных технологий.

Список литературы

Архангельский А.Я. Приемы программирования в Delphi. - М.: ООО «Бином-Пресс», 2003 г.

Архангельский А.Я. Программирование в Delphi 5. - 2-е изд. - М.: ЗАО «Издательство Бином». 2000 г.

Васильков Ю. В. Первые шаги в автоматизации OpenOffice.Calc и OpenOffice.Writer под Delphi. http://articles.org.ru/cn/ showdetail.php?cid=6064, 22.04.2008

Истомин И.П., Новиков В.В., Новикова М.В. Высокоуровневые методы информатики и программирования. Учебник. - СПб. ООО «Андреевский издательский дом», изд. 2-е, 2008 г.

Карпов Б. Visual Basic 6: специальный справочник. - СПб.: Питер, 2002 г.

Карпов Б. VBA: специальный справочник. - СПб.: Питер, 2002 г.

Кэнту М. Delphi 7: Для профессионалов. - СПб.: Питер, 2004. - 1101 с.: ил.

Стивенс Р. Delphi. Готовые алгоритмы / Пер. с англ. - М.: ДМК Пресс, 2001. - 384.: ил.

Стивенс Р. Delphi. Готовые алгоритмы / Пер. с англ. Мерещука П. А. - 2-е изд., стер. - М.: ДМК Пресс ; СПб.: Питер, 2004. - 384 с.: ил.

Сухарев М.В. Основы Delphi. Профессиональный подход. - СПб.: Наука и Техника, 2004. - 600 с.: ил.

Тейксейра С., Пачеко К. Delphi 5, Руководство разработчика. в 2 т. - СПб.: Питер, 2005.

Фленов М.Е. Библия Delphi. - СПб.: БХВ-Петербург, 2004. - 880 с.: ил.

Фленов М.Е. Программирование в Delphi глазами хакера. - СПб.: БХВ-Петербург, 2004. - 368 с.: ил.

Хахаев И. и др. OpenOffice.org: Теория и практика. - М.: ALT Linux: БИНОМ. Лаборатория знаний, 2008. - 318 с.:ил.

Приложение 1

Описание офисного пакета Openoffice

История создания

Код StarOffice, изначально разрабатываемого немецкой компанией StarDivision в рамках собственного проекта, был куплен Sun Microsystems в 1999 году. В августе 1999 версия StarOffice 5.2 была сделана бесплатной.

19 июля 2000 года, Sun Microsystems анонсировала, что делает исходный код StarOffice доступным для скачивания одновременно под лицензиями LGPL и SISSL с намерением создать вокруг программного обеспечения сообщество для разработки открытого исходного кода. Новый проект стал известен как OpenOffice.org, и его сайт начал своё существование 13 октября 2000 года.

В начале 2003 года началась работа над версией 2.0. Были поставлены следующие цели:

улучшенное взаимодействие с Microsoft Office;

улучшенная производительность -- снижение требований к памяти и увеличение скорости работы;

улучшение скриптового языка;

улучшенная интеграция, в частности с GNOME;

более лёгкий для использования интерфейс работы с базами данных: front-end для создания отчётов, форм и запросов;

новая встроенная SQL-база;

улучшенный пользовательский интерфейс.

В настоящее время из одного исходного кода, разрабатываемого сообществом OpenOffice.org выпускаются два продукта: StarOffice, в который добавляются компоненты под проприетарной лицензией и свободный OpenOffice.org [14]. В настоящее время в OpenOffice.org большинство проприетарных компонентов, присутствующий в StarOffice заменено их свободными аналогами.

OpenOffice.org -- это международный проект с открытыми исходными кодами, созданный для того, чтобы разработать универсальный офисный пакет, работающий на разных операционных платформах, имеющий открытый API и формат файлов, основанный на XML.

OpenOffice.org -- это пакет офисных приложений, разработанный в рамках данного проекта, совместимый с Microsoft Office, который позволяет работать с текстовыми документами, электронными таблицами, презентациями, графиками, базами данных и т.д.

OpenOffice.org -- это полнофункциональный пакет офисных приложений с многоязыковой поддержкой, работающий под всеми основными операционными системами. OpenOffice.org позволяет хранить все ваши данные в открытом формате OpenDocument Format (ODF), одобренным международной организацией по стандартизации ISO (ISO/IEC 26300:2006), предусматривает наличие встроенной функции экспорта документов в формат PDF одним нажатием кнопки мыши и поддержку Flash. Знакомый интерфейс легко выучить и использовать, особенно пользователям Microsoft Office. OpenOffice.org позволяет читать, редактировать и сохранять файлы в форматах Microsoft Office.

Использование OpenOffice.org не требует никаких лицензионных отчислений

Ru.OpenOffice.org -- это часть проекта OpenOffice.org, ставящая своей целью сделать его более доступным русскоязычному сообществу.

В рамках этого проекта основное внимание уделяется таким аспектам поддержки русскоязычных пользователей, как:

Информация на русском языке на web-страницах и в документах.

Доступные русскоязычные сборки.

Доступные зеркала и сайты аналогичной тематики.

Работа над переводом на русский язык.

Усовершенствование системы проверки правописания.

Шаблоны и макросы на русском языке

Популяризация OpenOffice.org среди русскоязычных пользователей.

Русский проект не заменяет, а дополняет основной проект OpenOffice.org. Поэтому на нашей странице вы найдете много ссылок на оригинальную англоязычную документацию.

Продукт OpenOffice.org

OpenOffice.org -- это свободный офисный пакет. Обладая собственной историей с 2000 года, OpenOffice.org пользуется заслуженной популярностью, благодаря расширенному функционалу, кроссплатформенностью, богатым возможностям, хорошей совместимостью компонентов и свободной лицензии.

OpenOffice.org успешно заменит вам любой другой офисный пакет, а открытая лицензия освободит пользователя от всех лицензионных отчислений, связанных с использованием пакета, в настоящем и будущем.

OpenOffice.org состоит из шести компонентов-программ:

Текстовый редактор и редактор web-страниц Writer;

Редактор электронных таблиц Calc;

Средство создания и демонстрации презентаций Impress;

Векторный редактор Draw;

Система управления базами данных Base;

Редактор для создания и редактирования формул Math.

Все компоненты интегрированы в общее ядро и, таким образом, обладают хорошей совместимостью друг с другом. Функциональность всех компонентов предоставляет все необходимые средства и позволяет решить основные задачи пользователя. Для хранения результатов работы используется формат файлов ODF (ISO/IEC 26300:2006), основанный на XML и получивший статус международного стандарта.

Основные особенности OpenOffice.org

OpenOffice.org обладает рядом интересных особенностей, частично или полностью отсутствующих в других офисных пакетах:

Кроссплатформенность. В настоящее время OpenOffice.org можно использовать на всех популярных платформах: Linux (на 32- и 64-разрядных системах), Windows (2000 и более поздняя), MacOS, FreeBSD и Solaris.

Инструменты, облегчающие создание, редактирование и управление документами:

Галерея для вставки изображений;

Навигатор для перемещения по документу и поиска;

Стилист для создания, редактирования и управления стилями форматирования документа;

Источники данных для импорта данных из баз данных или электронных таблиц.

Поддержка форматов MS Office. Вы можете без проблем открывать и сохранять документы в форматах MS Office 97-2003. Также поддерживается импорт файлов в формате Office OpenXML (MS Office 2007).

Экспорт в PDF. Экспорт в данный формат поддерживается из всех компонентов (кроме Base). При наличии специального расширения возможен также импорт PDF в OpenOffice.org Draw.

Поддержка расширений. OpenOffice.org предоставляет возможность разрабатывать независимые сторонние расширения, предоставляющее конечному пользователю дополнительную функциональность. Расширения легко устанавливаются и удаляются. Сообществом поддерживается репозитарий расширений OpenOffice.org. Описание некоторых расширений на русском языке можно прочесть в специальном разделе MyOOo.ru или на форуме сообщества.

Популярность OpenOffice не сильно уступает решению от Microsoft, причем не только благодаря доступности, но и еще потому, что «открытый» исходный код позволяет видоизменять пакет в соответствии с личными предпочтениями. Так, в русском OpenOffice не просто переведены англоязычные термины -- программа практически переписана заново.

Достоинства этого пакета -- доступность, качественная локализация, совместимость с популярными форматами и известный интерфейс. Недостаток, по большому счету, один -- отсутствие некоторых мелочей, вроде ручного рисования таблиц в текстовом редакторе.

Основные характеристики распространенных офисных пакетов для Windows

Название программы

Версия

Разработчик

Web-сайт

Размер дистрибутива

Состав пакета

Условия распространения

MS Office

2007 Basic

Microsoft

www.microsoft.com

413 Мбайт

текстовый процессор MS Word, электронные таблицы MS Excel, мастер презентаций MS PowerPoint, органайзер MS Outlook, СУБД MS Access

commercial

OpenOffice

3.3

Sun Microsystems

www.openoffice.org

156 Мбайт

текстовый процессор OpenOffice.org Writer, электронные таблицы OpenOffice.org Calc, редактор формул OpenOffice.org Math, графический редактор OpenOffice.org Draw, мастер презентаций OpenOffice.org Impress, СУБД OpenOffice.org Base

freeware

Приложение 2

Управление OpenOffice в Delphi

В основе OpenOffice лежит компонентная модель UNO (Universal Network Objects). Которая обеспечивает возможности для работы OpenOffice на базе различных платформ. Отметим, что рассматривается разработка приложения под ОС Windows, то есть с помощью технологии OLE, которая не поддерживается напрямую OpenOffice. Связано это с тем, что OLE - все-таки Windows технология, а, как было сказано выше, OpenOffice - продукт кроссплатформенный [4].

Для взаимодействия между OLE и языком OpenOffice используется технология Automation Bridge. Модель UNO, в свою очередь, предоставляет возможность работы со своими компонентами через Service Manager.

Данная информация дана просто в качестве вводной, подробная информация доступна на сайтах: developers.sun.com; или тут: www.openoffice.org.

Подключение к серверу автоматизации

Для начала работы с OpenOffice нужно подключиться к серверу автоматизации. Как это сделать, показано в листинге 1. Отметим, что переменные OO и Document объявлены как Variant.

Листинг 1

function TOpenOffice.Connect: boolean;

begin

if VarIsEmpty(OO) then

OO := CreateOleObject('com.sun.star.ServiceManager');

Result := not (VarIsEmpty(OO) or VarIsNull(OO));

end;

Комментарии здесь излишни, выделим только, что 'com.sun.star.ServiceManager' и есть программный идентификатор Service Manager'а.

Отключение от сервера автоматизации

Рассмотрим теперь функцию Disconnect. Она еще проще (листинг 2).

Листинг 2

procedure TOpenOffice.Disconnect;

begin

OO := Unassigned;

end;

Комментарии излишни. Теперь можно работать с документами, только для начала надо создать или открыть существующий.

Создание нового документа

Для создания документа используется функция CreateDocument. Она приведена на листинге 3.

Листинг 3

function TOpenOffice.CreateDocument: boolean;

var

Desktop: Variant;

begin

Desktop := OO.createInstance('com.sun.star.frame.Desktop');

Document := Desktop.LoadComponentFromURL(

'private:factory/swriter', '_blank', 0,

VarArrayCreate([0, -1], varVariant));

Result := not (VarIsEmpty(Document) or VarIsNull(Document));

end;

Рассмотрим эту функцию подробнее. Переменная Desktop - ни что иное, как экземпляр OpenOffice. Получив этот экземпляр, мы можем создавать документ. Для этого используется метод LoadComponentFromURL. Первым параметр - имя файла в URL-формате. Здесь можно указать существующий файл (тогда мы откроем уже существующий файл). Хотя файл, заданный нашим параметром тоже существует, только это шаблон пустого файла.

Сразу отметим, что это файл Writer'а. Для открытия файла, например, Calc, нам надо первым параметром передать: 'private:factory/scalc'. Отличия на этом в открытии файлов разных приложений заканчиваются. Второй параметр означает, что документ создается в новом окне. Третий параметр - флаг вызова. Далее - опции открытия. Рассмотрим их позже.

Открытие документа

Теперь функция открытия документа. Сама функция приведена на листинге 4.

Листинг 4

function TOpenOffice.OpenDocument(const FileName:string):

boolean;

var

Desktop: Variant;

VariantArray: Variant;

begin

Desktop := OO.CreateInstance('com.sun.star.frame.Desktop');

VariantArray := VarArrayCreate([0, 0], varVariant);

VariantArray[0] := MakePropertyValue('FilterName',

'MS Word 97');

Document := Desktop.LoadComponentFromURL(FileName, '_blank',

0,VariantArray);

Result := not (VarIsEmpty(Document) or VarIsNull(Document));

end;

Отличия этой функции от предыдущей только в опциях открытия. Для этого мы их помещаем в массив VariantArray. В частности, главное - что мы ставим фильтр на открытие: MS Word 97. То есть мы работаем с файлами MS Office. Отмечу, что для Calc'a мы бы написали MS Excel 97.

Небольшое отступление. Возникает вопрос: почему мы открываем файлы MS Office? Ответ прост. Пользователь не зависит от ПО, установленного у него на компьютере, ведь легко представить себе ситуацию, когда на одном компьютере установлен OpenOffice, а на другом MS Office. Поэтому работа с файлами одного формата решит проблему взаимодействия пользователей, у которых стоят различные «офисы». Более того, конечный пользователь даже не заметит разницы: оболочки очень похожи, функции выполняются одинаковые. Как мне кажется, это является важным условием при переходе с MS Office на OpenOffice.

В этой функции используется функция MakePropertyValue. Листинг 5.

Листинг 5

function TOpenOffice.MakePropertyValue(PropertyName,

PropertyValue:string):variant;

var

Structure: variant;

begin

Structure :=

OO.Bridge_GetStruct('com.sun.star.beans.PropertyValue');

Structure.Name := PropertyName;

Structure.Value := PropertyValue;

Result := Structure;

end;

Функция эта вспомогательная, она просто ставить заданное значение в соответствие заданному свойству. И возвращает пару свойство-значение. Выделили мы ее потому, что она будет необходима в ряде других мест.

Процедуры "Сохранить документ" и "Сохранить как"

Теперь рассмотрим сохранение документа в формате MS Word (или Excel).

Процедура сохранения показана на листинге 6.

Листинг 6

procedure TOpenOffice.SaveDocument(const FileName:String);

var

Desktop: Variant;

VariantArray: Variant;

begin

Desktop := OO.createInstance('com.sun.star.frame.Desktop');

VariantArray := VarArrayCreate([0, 0], varVariant);

VariantArray[0] :=

MakePropertyValue('FilterName', 'MS Word 97');

Document.StoreToURL(FileName, VariantArray);

end;

Как мы видим, разница только в функции StoreToUrl. Опять же отмечу, что для документа Calc мы могли бы написать MS Excel 97.

Рассмотрим еще одну процедуру SaveAs. Эта процедура просто сохраняет документ под новым именем (листинг 7).

Листинг 7

procedure TOpenOffice.SaveAs(FileName: String);

const

Bounds:array[1..2] of integer = (0,1);

var

VariantArray: Variant;

begin

VariantArray := VarArrayCreate([0,1], varVariant);

VariantArray[0] :=

MakePropertyValue('FilterName', 'MS Excel 97');

VariantArray[1] := MakePropertyValue('Overwrite', True);

Document.storeToURL('file:///'+FileName, VariantArray);

end;

В данном случае мы сохраняем текущий документ под именем FileName, если такой документ уже существует, то мы его перезаписываем (свойство Overwrite = True).

Закрытие документа

Следующая процедура - закрытие текущего документа. Она тоже проста и не требует никаких комментариев (листинг 8).

Листинг 8

procedure TOpenOffice.CloseDocument();

begin

Document.Close(True);

Document:=Unassigned;

end;

Печать документа

Последняя процедура в этом разделе - процедура вывода на печать текущего документа (листинг 9).

Листинг 9

procedure TOpenOffice.Print(iNumCopies:integer);

const Bounds:array[1..2] of integer = (0,0);

var

VariantArray: Variant;

begin

if ( iNumCopies < 1 ) or ( iNumCopies > 512 ) then

iNumCopies := 1;

VariantArray := VarArrayCreate(Bounds, varVariant);

VariantArray[0]:= MakePropertyValue('CopyCount',iNumCopies);

Document.print(VariantArray);

end;

В данном случае мы передаем на печать необходимое количество копий (iNumCopies). Для меня именно это было критично, хотя есть и другие параметры печати, которые можно задавать точно таким же образом. Например, свойство Pages:string - определяет страницы для печати, формат ввода такой: ' 1-9,11,15-20'; или свойство FileName:string - определяет файл, в который производится печать.

На этом мы закончим рассмотрение основных функций, необходимых для работы с OpenOffice и перейдем к работе непосредственно с документами.

Вставка текста в начало документа

Основными действиями, которые нас интересуют в работе с Writer'ом является возможность вставлять текст, например в начало документа и по метке, плюс возможность задавать форматирование текста. Поскольку работа с метками несколько более сложная, разберемся вначале с первым вариантом. Функция вставки текста приведена в листинге 10.

Листинг 10

procedure TOpenOffice.InsertTextWriter(const Text: String);

var

TextPointer: Variant;

CursorPointer: Variant;

begin

TextPointer := Document.GetText;

CursorPointer := TextPointer.CreateTextCursor;

TextPointer.InsertString(CursorPointer, Text, false);

TextPointer.InsertControlCharacter(CursorPointer, 0, false);

end;

Рассмотрим эту процедуру подробнее. Прежде чем начать работу с текстом, нам необходимо получить указатель на текст, как на объект документа. Для чего мы используем TextPointer := Document.GetText. Таким образом, схема взаимодействия будет следующей: ServiceManager -> Desktop -> Document -> TextPointer. После этого нам надо создать курсор, что делается методом CreateTextCursor. Только после этого мы уже можем непосредственно вставить строку в начало документа: TextPointer.InsertString(CursorPointer, Text, false). В качестве параметров для этого метода мы передаем созданный курсор, текст для вставки, а также параметр absorb: boolean. Если этот параметр равен False, то текст будет вставляться последовательно, в этом случае TextPointer будет указывать на весть текст, включая последнюю вставленную строку; если же True - тогда только на последнюю вставленную строку, причем, строка, на которую он указывал раньше будет удалена.

Метод InsertControlCharacter вставляет символ завершения строки. Второй аргумент ("0") - константа, которая обозначает этот символ (com::sun::star::text::ControlCharacter::PARAGRAPH_BREAK).

Теперь разберемся с форматированием текста. Чтобы поменять размер шрифта или его цвет, нужно установить соответствующее свойство курсора. Например, для установки 20 шрифта это будет выглядеть так:

CursorPointer.SetPropertyValue('CharHeight', 20);

Можно поменять цвет шрифта:

CursorPointer.SetPropertyValue('CharColor', 500);

В этом случае в качестве второго параметра передается цвет в формате RGB.

CursorPointer.SetPropertyValue('CharShadowed', True);

Можно сделать текст подчеркнутым, курсивным и жирным. Это будет выглядеть так:

CursorPointer.setPropertyValue('CharPosture',fsItalic);

CursorPointer.setPropertyValue('CharWeight',fsBold);

CursorPointer.setPropertyValue('CharUnderline',fsUnderline);

В принципе, можно и самому задать степень «жирности» и другие параметры. Ведь fsBold и т.д. есть ни что иное, как константы. Поэтому можно, например ввести вместо fsBold константу 200, текст будет жирными. Советую поэкспериментировать с этим.

Отмечу, что вновь вставленная строка будет обладать установленными свойствами, если их определить до вставки. И еще пара возможностей для работы с курсором. Можно перейти в начало текста:

CursorPointer.gotoStart(False).

В конец текста:

CursorPointer.gotoEnd(False).

CursorPointer.goLeft(short Count, boolean Expand) - передвигаем курсор влево на Count.

Аналогично goRight(short Count, boolean Expand).

Можно передвигаться по словам:

boolean gotoNextWord(boolean Expand);

boolean gotoPreviousWord(boolean Expand);

boolean gotoEndOfWord(boolean Expand);

boolean gotoStartOfWord(boolean Expand);

Переменная Expand определяет будет ли курсор расширятся при своем передвижении.

Существует и множество других возможностей работы с курсором, но мы остановимся только на этом необходимом наборе.

Вставка текста по метке

Теперь рассмотрим вставку текста по меткам. Вообще, на мой взгляд, именно операции с метками являются самыми важными с точки зрения автоматизации работы на предприятии. Обычно создается типичный шаблон отчета, туда один раз забиваются все метки и все. Дальнейшая работа программ автоматизации каждый раз вставлять новые данне в этот шаблон по меткам. Поэтому отведем работе с метками повышенное внимание. За работу с метками отвечает интерфейс xBookmarksSupplier. В листинге 11 показан пример вставки текста по метке.

Листинг 11

procedure TOpenOffice.InsertTextByNameWriter(const Text: String,

BookmarkName: String );

var

TextPointer: Variant;

CursorPointer: Variant;

BookmarksSupplier: Variant;

Bookmark: Variant;

Flag: boolean;

begin

Flag:=True;

TextPointer := Document.GetText;

CursorPointer := TextPointer.CreateTextCursor;

BookmarksSupplier:=Document.getBookmarks;

try

Bookmark:=BookmarksSupplier.getByName(BookmarkName).getAnchor;

except

ShowMessage('Такой метки нет');

Flag:=False;

end;

if(Flag)

then Bookmark.setString(Text);

end;

Как видно, начало этого метода ничем не отличается от предыдущего. Далее идут различия в получении метки. Для этого мы используем метод getBookmarks. Таким образом, мы получаем все метки, которые есть в документе. Далее мы можем найти метку, которая нам нужна. Для этого мы из всех меток выбираем метку с именем BookmarkName: BookmarksSupplier.getByName(BookmarkName). Метод getAnchor возвращает текстовый объект, который относится к этой метке. Если такой метки в документе нет, возвращается сообщение об ошибке. Для отслеживания этой ошибки мы вводим переменную Flag: boolean. Если же метка обнаружена, мы можем вставлять текст с помощью метода setString, вызванного для этой метки. На этом разговор о OpenOffice.Writer будем считать законченным и перейдем к OpenOffice.Calc.

Размещено на Allbest.ru


Подобные документы

  • Поиск значений показателя "количество абонентов оператора Мегафон" в сети Интернет с помощью различных поисковых систем; их сравнительный анализ. Формирование навыков работы с приложением Microsoft Word; работа с электронными таблицами в Microsoft Excel.

    курсовая работа [3,9 M], добавлен 12.05.2011

  • Методика создания приложений передающих данные в Microsoft Word. Технология взаимодействия приложений с текстовым редактором Microsoft Word. Создание и использование экземпляров серверов автоматизации. Взаимодействие с сервером на уровне документа.

    курсовая работа [120,7 K], добавлен 26.03.2010

  • Особенности работы с основными приложениями Microsoft Office (Word, Excel, PowerPoint). Решение статических задач контроля качества с применением программных средств. Создание электронных презентаций. Использование в работе ресурсов сети Интернет.

    отчет по практике [945,8 K], добавлен 17.02.2014

  • Панели как основные визуальные средства редактирования документов, их размещение и конфигурация в различных программах Microsoft Office. Панели текстового редактора Microsoft Word и Excel, основные их функциональные возможности и предназначение.

    лабораторная работа [885,6 K], добавлен 31.05.2009

  • Обмен данными между приложениями Word и Excel в MS Office как основа их интеграции. Основные способы обмена данными между программами в MS Office. Связывание и внедрение объектов. Сравнительный анализ основных способов. Простое (статическое) копирование.

    методичка [599,5 K], добавлен 10.11.2013

  • MS Word (OpenOffice.org Writer): настройка параметров страниц, предварительный просмотр документа. Выбор параметров отображения для приложений. Проверка правописания. Выбор языка для фрагмента текста. Редактирование и форматирование диаграмм в MS Excel.

    контрольная работа [1,2 M], добавлен 12.10.2013

  • Если в документе Word есть вставленный объект, то Word называют приложением-клиентом. В приложения Microsoft Office можно вставлять растровые и векторные рисунки, а встроенный в Word графический редактор позволяет создавать графические объекты.

    реферат [190,9 K], добавлен 08.01.2009

  • Общая характеристика приложения Microsoft Office system 2007. Особенности форматов Microsoft Office Open XML. Технологии управления миграцией на новую версию. Возможности приложений Office Word, Excel, Access и Office PowerPoint 2007, их интеграция.

    реферат [1,0 M], добавлен 13.09.2011

  • Microsoft Word — текстовый процессор, предназначенный для создания, просмотра и редактирования текстовых документов с использованием таблично-матричных алгоритмов. Область применения Microsoft Excel; общие операции над листами и ячейками рабочей книги.

    реферат [2,5 M], добавлен 23.02.2012

  • Ознакомление с тесным взаимодействием программ Word и Excel, входящих в пакет Microsoft Office: создание шаблонов в текстовом редакторе Word; текстовых документов, оформляемых в соответствии с требованиями; рисунков в графическом редакторе Paint.

    практическая работа [1,6 M], добавлен 08.06.2008

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.