Передача данных в Word
От: Самохин Владимир Петрович  
Дата: 26.01.02 06:10
Оценка:
Требуется вставить данные в существующий документ Microsoft Word, в определенное место. Режим поиск-вставка. Возможно ли это.
Re: Передача данных в Word
От: Romkin  
Дата: 28.01.02 12:43
Оценка:
Здравствуйте Самохин Владимир Петрович, Вы писали:

СВП>Требуется вставить данные в существующий документ Microsoft Word, в определенное место. Режим поиск-вставка. Возможно ли это.


Ключ к этому — функция GetActiveOleObject('Word.Application'); находится в ComObj.pas. Если Word запущен — даст ссылку на интерфейс. Примерный код

var
Wrd: Variant;
Doc : Variant;
Basic: Variant;

Wrd := GetActiveOleObject('Word.Application'); //or CreateOleObject... — если надо запустить.
Doc := Wrd.ActiveDocument; //Текущий документ
Doc.PrintOut; //Печать текущего документа
BAsic := Wrd.WordBasic // Интерфейс к VBA
Basic.FileOpen('aaa.doc'); //Открытие документа через VBA
и тд
Другие способы доступа описаны в разделе Developing COM-based Applications -> Create automation controller справки
Re: Передача данных в Word
От: Аноним  
Дата: 31.01.02 16:09
Оценка:
Здравствуйте Самохин Владимир Петрович, Вы писали:

СВП>Требуется вставить данные в существующий документ Microsoft Word, в определенное место. Режим поиск-вставка. Возможно ли это.


Я делал так. Сначала на форму бросаеш компоненты WordApplication и WordDocument из
вкладки Servers. Затем нужно подключится к Word для этого создаем свою прцедуру на
вход которой подаем имя файла вот
код:procedure TForm1.MyOpenWord(FileName:OleVariant);
var Template, NewTemplate,ItemIndex:OleVariant;
begin
ItemIndex := 1;
try
Wordapplication1.Connect;
except
MessageDlg('Word may not be installed', mtError, [mbOk], 0);
Abort;
end;
try
WordApplication1.Visible:=True;
WordApplication1.Documents.Open(FileName,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
except
on E: Exception do
begin
ShowMessage(E.Message);
WordApplication1.Disconnect;
end;
end;
try
Template := EmptyParam;
NewTemplate :=False;
{Assign WordDocument component}
WordDocument1.ConnectTo(WordApplication1.Documents.Item(ItemIndex));
except
on E: Exception do
begin
ShowMessage(E.Message);
WordApplication1.Disconnect;
end;
end;
end;
А для поиска и замены используется след процедура
WordDocument1.Range.Find.Execute(MyOleStr,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,NewStr,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam);
Где MyOleStr то что нужно найти, а NewStr на что заменить.
Незабудь в событии WordApplication OnQuit
вставить WordApplication1.Disconnect;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.