php使用COM替换msword中的文本

时间:2016-09-03 10:11:55

标签: php vba com

我试图在msword doc中使用php替换文本。使用COM。 抛出错误[0x80020011]不支持集合。 代码是从VBA复制和修改的。

       $word = new COM("Word.Application") or die("Word not installed!");
        try{
            $word->Documents->Open("c:\1.doc");
            $word->ActiveDocument->Range->Find->Text="222";
            $word->ActiveDocument->Range->Find->Replacement->Text="111";
            $word->ActiveDocument->Range->Find->Forward=True;
            //$word->ActiveDocument->Range->Find->Replace=2;
            //$word->ActiveDocument->Range->Find->Wrap=1;
            $word->ActiveDocument->Range->Find->Format=False;
            $word->ActiveDocument->Range->Find->MatchCase=False;
            $word->ActiveDocument->Range->Find->MatchWholeWord=False;
            $word->ActiveDocument->Range->Find->MatchWildcards=False;
            $word->ActiveDocument->Range->Find->MatchSoundsLike=False;
            $word->ActiveDocument->Range->Find->MatchAllWordForms=False;
            $word->ActiveDocument->Range->Find->Execute();
            $word->ActiveDocument->SaveAs("c:\2.doc");
            $word->Quit();
       }
       .....

另一种方式

   $wdFindContinue = 1;
   $wdReplaceAll = 2;
   $word->ActiveDocument->Content->Find->Execute("222", false, false, false, false, false, true, $wdFindContinue, false, "111", $wdReplaceAll);

服务器正在使用office 2007和php 4.6 / apache 2.1

1 个答案:

答案 0 :(得分:0)

我放弃了。

另一种解决方案:

USE word export as xml,然后使用php fread,替换里面的字符串。并保存它。