1

我将数据从 PHP 页面导出到 Word 文档,但页眉并非在所有页面中都可用。

页眉出现在 Word 文档的第一页中,但不出现在 Word 文档的其他页面中。

这是我的代码,

function changeDetails()
{
    $bType = $this->input->post('textvalue');
    if ($bType == "word")
    {
        $this->load->library('table');
        $data['countrytoword'] = $this->AddEditmodel1->export();
        $this->table->set_heading('Name','Country','State','Town');
        $out =  $this->table->generate($data['countrytoword']); 
        header("Content-Type: application/vnd.ms-word");
        header("Expires: 0");
        header("Cache-Control:  must-revalidate, post-check=0, pre-check=0");
        header("Content-disposition: attachment; filename=$cur_date.doc");
        echo '<br><br>';
        echo '<strong>CountryList</strong><br><br>';
        print_r($out);
    }
}
<? if(isset($countrytoword)) { ?>
  <table align="center" border="0">
    <tr>
      <td>Name</td>
      <td>Country</td>
      <td>State</td>
      <td>Town</td>
    </tr>
    <? foreach($countrytoword as $dsasffd) { ?>
      <tr>
        <td><?= $dsasffd['dbName'] ?></td>
        <td><?= $dsasffd['dbCountry']; ?></td>
        <td><?= $dsasffd['dbState']; ?></td>
        <td><?= $dsasffd['dbTown']; ?></td>
  <? } } ?>
    </tr>
  </table>
4

3 回答 3

1

不知道听者,但你使用的是什么循环

<? foreach($countrytoword as $dsasffd) { ?>
      <tr>
        <td><?= $dsasffd['dbName'] ?></td>
        <td><?= $dsasffd['dbCountry']; ?></td>
        <td><?= $dsasffd['dbState']; ?></td>
        <td><?= $dsasffd['dbTown']; ?></td>
  <? } } ?>

TR 标签在任何地方都没有关闭(最后一个除外)。

于 2010-04-06T06:27:10.087 回答
1

如果你用 <thead> 元素标记标题行,你应该得到你想要的。所以这段代码变成了

 <table align="center" border="0"> 
 <thead>
 <tr> 
  <td> 
   Name 
  </td> 
  <td> 
   Country 
  </td> 
  <td> 
   State 
  </td> 
  <td> 
   Town 
  </td> 

 </tr> 
 </thead>
于 2010-04-01T15:36:51.357 回答
0

为什么选择 Microsoft Word?

现在,两个解决方案:

  1. 如果您正确命名文件,并正确设置 MIME 类型,则当您使用文件 → 打开对话框时,您可以让 MS Word 打开 HTML 文件,就像从桌面上一样。

  2. 另一种选择是生成 LaTEX,然后使用 latex2rtf 制作 RTF。有 HTML 到 RTF 的转换器,而且 RTF 很简单,你可以制作它,但是 LaTEX 比 RTF 更容易制作,而且质量似乎比 HTML 到 RTF 更好。
    使用系统调用运行应用程序,如果数据敏感,则使用 UUID 命名文件,然后重定向。您甚至不需要制作标头,因为您的 Web 服务器应该已经知道如何处理 RTF。

于 2010-04-07T15:09:48.337 回答