Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Вниз

Поиск-замена в 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 вся ветка

Форум: "Corba";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.036 c
2-1130343787
Хинт
2005-10-26 20:23
2005.11.13
Как зациклить приложение без окна


14-1129630075
delphi@so-ft.com
2005-10-18 14:07
2005.11.13
Разыскивается Delphi-программист!!!


2-1130077522
Vir
2005-10-23 18:25
2005.11.13
MS Excel


14-1130212702
pazitron_brain
2005-10-25 07:58
2005.11.13
Помогите!


3-1128366408
suharew
2005-10-03 23:06
2005.11.13
SQL Запрос





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