3

私は実際にhttp://php.net/manual/en/class.com.phpから見つけたいくつかのコードを試しています

  <?php
    // starting word
    $word = new COM("word.application") or die("Unable to instantiate Word");
    echo "Loaded Word, version {$word->Version}\n";

    //bring it to front
    $word->Visible = 1;

    //open an empty document
    $word->Documents->Add();

    //do some weird stuff
    $word->Selection->TypeText("This is a test...");
    $word->Documents[1]->SaveAs("Useless test.doc");


    //closing word
    $word->Quit();

    //free the object
    $word = null;
    ?> 

しかし、これはうまくいかないようです。Word 2007を使用していますが、次のように表示されます。

ロードされたWord、バージョン12.0致命的なエラー:14行目のC:\ xampp \ htdocs \ final\testq.phpで未定義のメソッドvariant::SaveAs()を呼び出します

誰かがこの問題を解決できますか?Word 2007を使用しているからですか?

4

3 に答える 3

1

Documentsオブジェクトはコレクションオブジェクトであり、配列ではありません。試す:

$word->Documents(1)->SaveAs("Useless test.doc");

または

$word->ActiveDocument->SaveAs("Useless test.doc");
于 2010-03-24T16:36:40.630 に答える
1

あなたのサンプルは、Windows7のWord2003とWord2007の両方で問題なく動作します。したがって、問題はWordが正しくインストール/構成されていない可能性があると思います。トラブルシューティングのために、以下を実行します。

  • Wordのインストールを修復する
  • スクリプトを実行するのと同じユーザーとして、Wordが少なくとも1回起動されていることを確認してください
  • すべてのアドインを無効にする
  • %APPDATA%\Microsoft\Templates\Normal.dot(x)ファイルに移動して名前を変更します
  • 指定した場所にファイルを保存する権限が実際にあることを確認し、絶対パスを試してください
于 2010-03-24T17:08:33.363 に答える
1

私はそれを使用して解決しました:http ://www.phpbuilder.net/columns/venkatesan20030501.php3 ?返信ありがとうございます

于 2010-03-25T06:35:19.577 に答える