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

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

  • 修复Word安装
  • 确保 Word 已至少以运行脚本的同一用户启动一次
  • 禁用所有加载项
  • 转到%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 回答