Курсовая работа: Delphi: работа с MS WORD

Ну, вот практически и все. Суммируя все, что мы получили, имеем статистику документа даже точнее встроенной. Еще пара замечаний. Перед подсчетом Word стоит "спрятать", чтобы он не маячил на экране:

WordApplication1.Visible:=False;

При подсчете статистики, особенно если в документе содержится что-то кроме простого текста, считается, что в файл внесены изменения. Потому напоследок сохраняем и закрываем документ:

WordDocument1.Save;

WordDocument1.Close;

Ну и, конечно, делаем серверу Word Disconnect, когда он станет нам уже не нужен.

А теперь предупреждение тем, кто заинтересовался данным вопросом и хочет поэкспериментировать сам. Офис слишком тесно связан с Windows, потому на сбои в его работе система реагирует крайне остро. При отладке программ подсчета статистики у меня после ошибки часто появлялся "голубой экран". То же самое происходило, если после разбора RTF - файла в поисках Shapes и превращения их в обычный текст в Word загружался неправильно "собранный" файл. Так что очень рекомендуется предварительно сохранить важные данные или поставить систему понадежнее. У меня стоит WindowsXP, который к таким сбоям оказался нечуствителен. Кроме того, пока приведенное здесь не было отлажено, после ошибок частенько летел сам офис. Так что имейте под рукой дистрибутив для запуска диагностики офиса и устранения повреждений.

Работаем с таблицами

Каждый, наверное, хоть раз сталкивался с необходимостью выдачи отчета. В Delphi имеются для этого специальные компоненты, но они налагают на нас достаточно строгие ограничения на форму представления данных. Одним из выходов может служить использование программы MS Word. Здесь не будем подробно обсуждать простейший вопрос, как открыть документ и добавить в него нужную строку текста, это есть практически в каждом учебнике по Delphi, приведем только самые необходимые сведения. А из литературы на эту тему особенно рекомендуется найти книжку А.Я. Архангельского "Язык SQL в Delphi 5". Но что может придать отчету такую читабельность, как представление результатов в систематизированном табличном виде? В данной статье и обсуждается вопрос программной работы с таблицами документа Word.

Тут могут быть два пути. Первый - если мы знаем заранее структуру данных отчета, можем приготовить шаблон, куда в ячейки таблицы затем просто занесем нужные данные. И второй - создаем отчет с нуля, рисуем в документе таблицу, заполняем ее. При этом мы можем программно добавить или удалить строки и столбцы, объединить или разбить ячейки - почти все, что мы делаем в самом Word'e. Все, что понадобится - компоненты WordApplication и WordDocument с палитры Servers

Теперь все по порядку - открываем файл и приступаем. Предварительно объявляем переменную FileName, типа OleVariant, которой присваиваем строку с именем файла.

WordApplication1.Connect;

WordApplication1.Documents.Open(FileName,

EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam);

WordDocument1.ConnectTo(WordApplication1.ActiveDocument);

Обратитевниманиенаколичествопараметров - "пустышек". Их число не совпадает с тем, что обычно приводится в книжках. Объясняется это тем, что "книжная" функция предназначена для MS Word 97, а такая запись для Word 2000 и Word XP.
Созданиеновогодокументавыглядитпроще:

WordApplication1.Connect;

WordApplication1.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);

WordDocument1.ConnectTo(WordApplication1.ActiveDocument);

Здесь также ставим на пару "пустышек" больше - по тем же самым причинам. Кроме того, полезно будет сразу же отключить проверку орфографии, чтобы Word не тратил время понапрасну:

WordApplication1.Options.CheckSpellingAsYouType:=False;

WordApplication1.Options.CheckGrammarAsYouType:=False;

По окончании работы нам надо сохранить или распечатать наш отчет:

WordDocument1.PrintOut;

WordDocument1.SaveAs(FileName);

где переменная в скобках типа OleVariant, ей присваиваем строку с именем файла.

Объект Range

К-во Просмотров: 927
Бесплатно скачать Курсовая работа: Delphi: работа с MS WORD