Главная страница
    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.031 c
14-1130086693
DK2DK2DK2
2005-10-23 20:58
2005.11.13
Автоматизированое составление расписаний


14-1129551225
Maximus2005
2005-10-17 16:13
2005.11.13
Delphi & Fireberd


4-1126194693
vvvaaa
2005-09-08 19:51
2005.11.13
Работа с памятью


1-1130304630
Ega23
2005-10-26 09:30
2005.11.13
Получить список директив компиллятору


5-1110705262
Rius
2005-03-13 12:14
2005.11.13
Как разделить пакет на runtime и designtime?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский