Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: СУБД и Delphi/Lazarus

  Все выпуски  

RusFAQ.ru: СУБД и Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / СУБД и Delphi

Выпуск № 170
от 08.07.2006, 08:05

Администратор:CJ
В рассылке:Подписчиков: 235, Экспертов: 34
В номере:Вопросов: 1, Ответов: 1


Вопрос № 47972: Здравствуйте!!! Я уже давно програмирую в Delphi, но так и не научился сохранять отчеты в Word. Подскажите пожалуйства как это сделать правильно. Если можно то несколько способов. Огромное спасибо!...

Вопрос № 47.972
Здравствуйте!!! Я уже давно програмирую в Delphi, но так и не научился сохранять отчеты в Word. Подскажите пожалуйства как это сделать правильно. Если можно то несколько способов.

Огромное спасибо!
Отправлен: 03.07.2006, 07:09
Вопрос задал: Столяренко Олег (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Столяренко Олег!

Вот здесь в разделе OLE Automation MSOffice - [77] есть куча статей на эту тему.

Есть несколько подходов к работе с Word.
1. Работа через COM-сервера.
На форме нужны компоненты WordApplication и WordDocument с палитры Servers.
WordApplication1.Connect // Подключение к Word
WordApplication1.AutoQuit:=false;
with WordDocument1 do
begin
Connect; //соединение с документом далее все настройки не обязательны, можно сразу писать текст в документ, но я все-таки прокоментирую настройки, чтоб Вам было меньше искать.
PageSetup.Orientation:=wdOrientPortrait; //положение страницы
PageSetup.TopMargin:=29; //поля страницы
PageSetup.LeftMargin:=29;
PageSetup.RightMargin:=29;
PageSetup.BottomMargin:=29;
PageSetup.PaperSize:=wdPaperA4; //размер бумаги
with Range do
begin
Paragraphs.Format.FirstLineIndent:=0; // отступ первой строки абзаца
Font.Size:=14; //размер шрифта всего документа
Font.Bold:=0; //не жирный
Italic:=0; //не курсив
Paragraphs.Format.Space1; //одинарный интервал
Paragraphs.Item(1).Range.Font.Size:=18; //размер шрифта первого параграфа
Paragraphs.Item(1).Range.Font.Bold:=1; //жирный
Paragraphs.Item(1).Range.Font.Italic:=1; //курсив
Paragraphs.Item(1).Format.Alignment:=wdAlignParagraphCenter; //положение на странице - по центру
Paragraphs.Item(1).Range.InsertAfter('Первая строка текста'); //вставка первой строки
Paragraphs.Item(1).Range.InsertParagraphAfter; //новый параграф
Paragraphs.Item(2).Format.Alignment:=wdAlignParagraphJustify; //растягивание по ширине
Paragraphs.Item(2).Range.Font.Size:=14; //размер шрифта
Paragraphs.Item(2).Range.Font.Bold:=0;
Paragraphs.Item(2).Range.Font.Italic:=0;
Paragraphs.Item(2).Range.InsertAfter('вторая строка');
Paragraphs.Item(2).Range.InsertParagraphAfter;
Paragraphs.Item(3).Range.InsertBreak(7); //разрыв страницы новая страница - с цифрой 7 поэкспериментируйте - разные цифры - разные разрывы
end;
Disconnect; //отключаемся от документа
end;
WordApplication1.Visible:=True; //отображаем Word
WordApplication1.Disconnect; //отключаемся от Word

2. Работа через OLE
К сожалению, под рукой сейчас нет примера, на котором можно было бы понятно это объяснить, но по ссылке выше Вы найдете много статей на эту тему, а учиться никогда не поздно :)

Удачи!
---------
Ответы на все вопросы - на сайте www.ya.ru
Ответ отправил: Устинов Сергей Евгеньевич (статус: Студент)
Ответ отправлен: 03.07.2006, 11:17
Оценка за ответ: 5
Комментарий оценки:
огромное спасибо


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное