将HTML表单数据保存到doc文件

时间:2018-01-29 07:53:34

标签: php html

我创建了一个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文档中的字段(以红色突出显示): enter image description here

有什么建议吗?非常感谢你!

2 个答案:

答案 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主体中设置任何内容之前,必须将用户重定向到包含上述代码的页面,否则代码将无效。 修改标题应该是第一件事。