PHP Word ihracat ilk sayfanın ötesine başlıkları taşımıyor

3 Cevap php

Bir Word belgesine bir PHP sayfası verileri ihraç ama başlık tüm sayfalarda mevcut değildir.

Kafa Word belgesinin diğer sayfalarında ilk sayfada mevcut değil ama.

İşte benim kod,

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>

3 Cevap

Eğer bir ile başlık satırını (ler) işaretlerseniz eleman istediğini almalısınız. Yani bu kod olur

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

 </tr> 
 </thead>

tür döngü kullanarak bu ur ne hearder hakkında bilmiyorum ama

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

TR etiketi yerde (sonuncusu hariç) kapanış değildir.

Neden Microsoft Word?

Şimdi, iki çözüm:

  1. Eğer doğru dosyayı adlandırın ve doğru MIME türü ayarlarsanız, size File → Open dialog kullanırken, sadece masaüstünden olabildiğince, MS Word, HTML dosyasını açmaya almak mümkün olabilir.

  2. Another option is to generate LaTEX, then use latex2rtf to make RTF. There are HTML to RTF converters, and RTF is simple enough that you could make it, but the LaTEX is easier to make than RTF and the quality seems to be better than HTML to RTF.
    Use a System call to run the application, naming the file using a UUID if the data is sensitive, and then redirect. You would not even need to make the headers, as your web server should know what to do with an RTF already.