使用COM打开Word

时间:2010-03-24 16:21:00

标签: php com word-2007

我实际上正在尝试从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吗?

3 个答案:

答案 0 :(得分:1)

Documents对象是Collection对象,而不是数组。尝试:

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

或者

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

答案 1 :(得分:1)

您的示例对我来说运行正常,包括Word 7和Word 7在Window 7上。因此我认为问题可能是错误安装/配置的Word。要进行故障排除,请执行以下操作:

  • 修复Word安装
  • 确保Word已作为您的脚本在
  • 下运行的同一用户至少启动一次
  • 禁用所有加载项
  • 转到%APPDATA%\Microsoft\Templates\并重命名Normal.dot(x)文件
  • 确保您确实有权将文件保存到指定位置,尝试使用绝对路径

答案 2 :(得分:1)

我使用:http://www.phpbuilder.net/columns/venkatesan20030501.php3解决了这个问题? 谢谢你的回复