Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.08;
Скачать: CL | DM;

Вниз

Использование MWord в Delphi   Найти похожие ветки 

 
Max Payne ©   (2004-07-25 18:24) [0]

У меня проблема такая: после чтения некоторой информации из текстового документа мне надо бы перевести эту инфу в Word, причём не просто "закинуть", а использовать разный формат текста, форматирование, таблицы и т.д. и т.п. Я даже нашёл компоненты, которые должны быть связаны с этим (WordApplication, WordDocument...), правда, не совсем понимаю, почему они во вкладке Servers (мало опыта: мне 16 лет и работаю в Дельфи всего 4 месяца).
На этом сайте толковой информации я не нашёл (разве что константы какие-то к Word"у и Excel"ю). Если кто-то знает какие-нибудь ссылки с подобной информацией, то я буду очень вам благодарен, если вы мне её передадите. Спасибо


 
TechnoDreamer   (2004-07-25 19:15) [1]

http://www.interface.ru/borland/d5_office/d5_office.htm


 
Piter ©   (2004-07-25 19:48) [2]

Мне тоже как-то пришлось работать с Word"ом, правда простенько так, без наворотов. Читать что-то серьезное было влом, да и искать надо.

Мне был нужен маленький пример, вот я тебе даю его:

procedure TForm1.Button1Click(Sender: TObject);
var
 MsWord: Variant;
begin
MsWord:=CreateOleObject("Word.Application");
try
 MsWord.Documents.Add;
 MsWord.Selection.TypeText("Тест1");
 MsWord.Selection.TypeParagraph;
 MsWord.Selection.Text := "Тест2";
 MsWord.Selection.Font.Bold := 1;
 MsWord.Selection.EndKey;
 MsWord.Selection.Font.Bold := 0;
 MsWord.Selection.TypeText(" тест3");  
finally
 MsWord.Visible := True;  
end;

end;


Не забудь подключить модуль comobj.

Рассказываю:

MsWord:=CreateOleObject("Word.Application"); - создается Ole объект вордовский, можно сказать, что это как бы "запуск" Word"а

MsWord.Documents.Add; - в ворде создается новый документ

MsWord.Selection.TypeText("Тест1"); - как будто ты в этом новом документе пишешь слово Тест1

MsWord.Selection.TypeParagraph; - как будто ты после написания просто жмешь Enter

MsWord.Selection.Text := "Тест2"; - как будто ты пишешь слово Тест2. В отличии от TypeText ты как бы это слово пишешь и тут же его выделяешь, чтобы к этому выделению применить какие-то действия.

MsWord.Selection.Font.Bold := 1; - ты делаешь выделенную фразу жирной. (а выделено у нас Тест2).

MsWord.Selection.EndKey; - как будто ты жмешь клавишу End. То есть, курсор переходит к концу строки. Выделение снимается.

MsWord.Selection.Font.Bold := 0; - отменяешь стиль"жирный". Чтобы последующие написанные слова были без выделения жирным.

MsWord.Selection.TypeText(" тест3"); - как будто просто пишешь слово Тест3

MsWord.Visible := True; - делаешь ворд видимым на экране. Этот пункт надо выполнять обязательно, иначе ворд будет в памяти находится, но на экран не покажется. В тоже время не надо показывать раньше времени, чтобы пользователь не видел как там по полю курсор ползает в соответствии с коммандами.

Ну так вот, элементарный пример я тебе показал - можешь посмотреть его результаты. Все проще простого.

А дальше я делал вот как, чтобы узнать что еще можно делать. Открываеш Word, нажимаешь "Сервис->Макрос->Запись макроса" и делаешь руками что угодно -, оформление и т.д. Потом останавливаешь запись макроса и смотрищь какой макрос получился. Там будет записано все, что ты сделал руками, но на языке VB. При известном умении и пользуясь F1 на непонятных местах переводишь это все в Delphi. Получается все, что ты можешь ручками сделать в Word"е - можно сделать программно.
Тоже и к Excel"у применимо.

P.S. Может и ламерский подход, но за день разбирательств я полностью реализовал нужный мне функционал...



Страницы: 1 вся ветка

Текущий архив: 2004.08.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.041 c
4-1088159955
Zelius
2004-06-25 14:39
2004.08.08
Как вызвать из программы диалог Internet options?


14-1090168102
zamkom
2004-07-18 20:28
2004.08.08
Скачать кино


14-1089979887
pavel_pavel
2004-07-16 16:11
2004.08.08
Средний рост программиста


1-1090818575
TIN
2004-07-26 09:09
2004.08.08
Защита программы


1-1090567550
Fast
2004-07-23 11:25
2004.08.08
Проблема с кодировками