使用PHP服务器在客户端计算机上填充Word模板中的数据

使用PHP服务器在客户端计算机上填充Word模板中的数据,php,com,ms-word,Php,Com,Ms Word,我头痛,现在我需要一些帮助 基本上,我在工作时的电脑上安装了一个服务器(xampp)。在这台服务器上,我有一个脚本,可以用从数据库检索的数据以及用户输入创建并填充Word 2007模板。这部分很好用 我的问题是,当我转到网络上的另一台计算机,键入服务器的IP地址,并通过相同的过程从Word模板创建包含所有数据的文件时,Word文件将在服务器计算机上打开,而不是在客户端计算机上打开。有人知道怎么解决这个问题吗 以下是Word模板创建页面的代码: <?php include_once 'cor

我头痛,现在我需要一些帮助

基本上,我在工作时的电脑上安装了一个服务器(xampp)。在这台服务器上,我有一个脚本,可以用从数据库检索的数据以及用户输入创建并填充Word 2007模板。这部分很好用

我的问题是,当我转到网络上的另一台计算机,键入服务器的IP地址,并通过相同的过程从Word模板创建包含所有数据的文件时,Word文件将在服务器计算机上打开,而不是在客户端计算机上打开。有人知道怎么解决这个问题吗

以下是Word模板创建页面的代码:

<?php
include_once 'core/classes/company.php';

$word = new COM("word.application") or die("Unable to start Word");
$word->visible=1;
$template_file = 'C:/xampp/htdocs/portal/includes/templates/form1.dotx';
$word->Documents->Open($template_file);
//Part Number
$partNumBookMark = 'PartNum';
$objBookmark = $word->ActiveDocument->Bookmarks($partNumBookMark);
$range = $objBookmark->Range;
$range->Text = $part_num;
//Part Name
$partNameBookMark = 'PartName';
$objBookmark = $word->ActiveDocument->Bookmarks($partNameBookMark);
$range = $objBookmark->Range;
$range->Text = $part_name;

$word=null;
unset($word);

我最后得到了这段代码,它现在可以在网络上的其他计算机上打开文档:

// Save document
$filename = tempnam(sys_get_temp_dir(), "word");
$word->Documents[1]->SaveAs($filename);

// Close and quit
$word->Quit();
unset($word);
header("Content-Length: ".filesize($filename));
//header("Content-Type: application/force-download");
header("Content-type: application/vnd.openxmlformats-officedocument.wordprocessingml.document");
header("Content-Disposition: attachment;Filename=document_name.docx");
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');

// Send file to browser

readfile($filename);
unlink($filename);

您需要告诉Word将文档保存到临时文件,然后在HTTP响应中发送该文件的内容。在这一点上,它只是一个常规的文件下载。我相信您可以很容易地找到关于如何用PHP实现这一点的示例(我个人并不熟悉)。