我创建了一个HTML表单和一个Word文档。实际上我想更新Word文档中的特定字段。 如下所示,用户将填写此表单
<form action="test.php" method="post">
<table>
<tr>
<th>Organization / Company:
<td>
<input type="text" name="company" size="50" required>
</td>
</th>
</tr>
<tr>
<th>Telephone:
<td>
<input type="text" name="tele" size="50" required>
</td>
</th>
</tr>
<tr>
<th>E-Mail:
<td>
<input type="email" name="email" size="50" required>
</th>
</tr>
</table>
<input id="submitBtn" type="submit" value="Submit">
</form>
然后将这些数据保存到Word文档中的字段(以红色突出显示):
有什么建议吗?非常感谢你!
答案 0 :(得分:0)
退房:https://github.com/PHPOffice/PHPWord
您需要做的是创建一个word模板文件,其中包含值的占位符。例如,在Word中,组织字段应该具有 $ {organization} 作为其值(而不是“xxxxxx”)。
require_once '../PHPWord.php';
// TODO: Get values from form here.
$org = ...
$email = ...
$phone = ...
$PHPWord = new PHPWord();
$document = $PHPWord->loadTemplate('template.docx');
$document->setValue('organization', $org);
$document->setValue('phone', $phone);
$document->setValue('e-mail', $email);
$document->save('customer.docx');
答案 1 :(得分:0)
我在这里看到了类似问题的答案 Generating word documents with PHP
假设您已从表单中获取值(通过$_POST
或$_GET
)并将其分别存储在$company
,$telephone
,$email
中,你可以这样做:
<?php
header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=document_name.doc");
echo "<html>";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\">";
echo "<body>";
echo "<b>created by PHP!</b>";
echo "Organization / Company: $company <br>";
echo "Telephone: $telephone <br>";
echo "E-Mail: $email <br>";
echo "</body>";
echo "</html>";
exit;
?>
但是,在HTML主体中设置任何内容之前,必须将用户重定向到包含上述代码的页面,否则代码将无效。 修改标题应该是第一件事。