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

Вниз

Поиск-замена в Word средствами делфи   Найти похожие ветки 

 
sapsi   (2005-02-04 13:20) [0]

Добрый день.
Как реализовать сабж?
Делаю примерно следующее:

  wordapp:=CreateOleObject("word.Application");
  worddoc:=wordApp.documents.Add;
  wordapp.Selection.WholeStory;
  worddoc.Content.Find.ClearFormatting;
  worddoc.Content.Find.Replacement.ClearFormatting;
  worddoc.Content.Find.Text:="111";
  worddoc.Content.Find.Replacement.Text:="222";
  worddoc.Content.Find.MatchCase:= False;
  worddoc.Content.Find.Execute(wdReplaceAll);

не ищет "111", пробовал и по-другому, что-то вроде:

worddoc.Content.Find.execute(text:="111",ReplaceWith:="222",replace:=wdReplaceAll);

Все равно не работает.
Кто подскажет почему?
Спасибо.


 
Alezy ©   (2005-02-04 17:19) [1]

Надо просто пользоваться правильными свойствами объектной модели MS Word. Ниже приведен пример замены, реализованный на VBA, думаю перевести его на Delphi не составит никакого труда. Вообще автоматизацию офиса лучше изучать с помощью VBA и переносить готовые куски кода в другие среды разработки.

Sub TestReplace()
 Dim wordApp As Word.Application
 Dim worddoc As Word.Document
 Set wordApp = CreateObject("word.Application") "создаем объект Word
 Set worddoc = wordApp.Documents.Add "создаем новый документ
 
 With wordApp.Selection "добавляем в документ данные!!!
   .TypeText Text:="Test1111Test"
   .TypeParagraph
   .TypeText Text:="Test2222Test"
   .TypeParagraph
   .TypeText Text:="Test3333Test"
 End With
 
 With wordApp.Selection.Find "заполняем опции замены
   .ClearFormatting
   .Replacement.ClearFormatting
   .Text = "111"
   .Replacement.Text = "222"
   .Wrap = wdFindContinue
   .Format = False
   .MatchCase = False
   .MatchWholeWord = False
   .MatchWildcards = False
   .MatchSoundsLike = False
   .MatchAllWordForms = False
   .Execute Replace:=wdReplaceAll "меняем всё
 End With
 worddoc.SaveAs ("c:\AAA.doc") "сохраняем результаты или получем их другим способом
 worddoc.Close "закрываем документ!!!
 Set wordApp = Nothing "выгружаем Word
End Sub


 
GanibalLector ©   (2005-02-06 22:31) [2]

var WordApp:OleVariant;
begin
WordApp := CreateOleObject("Word.Application");
  try
  WordApp.Documents.Open("C:\2.doc");
  wordapp.visible:=true;

   WordApp.Selection.Find.ClearFormatting;
   WordApp.Selection.Find.Replacement.ClearFormatting;
   WordApp.Selection.Find.Replacement.Text:="GanibalLector";
   WordApp.Selection.Find.Text := "L";
   WordApp.Selection.Find.Forward := True;
   WordApp.Selection.Find.Wrap := 1;
   WordApp.Selection.Find.Format := False;
   WordApp.Selection.Find.MatchCase := False;
   WordApp.Selection.Find.MatchWholeWord := False;
   WordApp.Selection.Find.MatchWildcards := False;
   WordApp.Selection.Find.MatchSoundsLike := False;
   WordApp.Selection.Find.MatchAllWordForms := False;

   WordApp.Selection.Find.Execute(Replace := 2);

  finally
    WordApp:=UnAssigned;
 end;

end;



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

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

Наверх




Память: 0.45 MB
Время: 0.039 c
2-1129817011
Molchanov
2005-10-20 18:03
2005.11.13
CreateProcess


5-1108826527
Dmitry_04
2005-02-19 18:22
2005.11.13
Как сделать компонент невидимим при клике по нему?


9-1120030753
Зм1й
2005-06-29 11:39
2005.11.13
Морфинг


6-1122979880
Readen
2005-08-02 14:51
2005.11.13
IdHTTP: ContentRangeStart и ContentRangeEnd


14-1130138433
alexmix
2005-10-24 11:20
2005.11.13
Дополнительный заработок для программистов.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский