2011-06-29 10 views
0

テーブルをエクスポートする際に問題があります。PHPの問題でダウンロード可能なExcelテーブルをエクスポートする

これは生成されますが、最初のヘッダーセットに表示されます。

私が持っているこのようなテーブル:

<table>   
     <thead> 
      <tr> 
       <th colspan="5">Incoming</th> 
      </tr> 
      <tr> 
       <th>From</th> 
       <th>To</th> 
       <th>Date</th> 
       <th>Duration</th> 
       <th>Status</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr> 
       <td style="text-align: center;">942367233</td> 
       <td style="text-align: center;">-</td> 
       <td style="text-align: center;">15-06-2011 08:24</td> 
       <td style="text-align: center;">00:00</td> 
       <td style="text-align: center;">Abandoned</td> 
      </tr> 
      <tr> 
       <td style="text-align: center;">935761500</td> 
       <td style="text-align: center;">1956</td> 
       <td style="text-align: center;">15-06-2011 09:20</td> 
       <td style="text-align: center;">00:00</td> 
       <td style="text-align: center;">Answered</td> 
      </tr> 
      <tr> 
       <td style="text-align: center;">942367233</td> 
       <td style="text-align: center;">1957</td> 
       <td style="text-align: center;">15-06-2011 09:21</td> 
       <td style="text-align: center;">02:16</td> 
       <td style="text-align: center;">Answered</td> 
      </tr> 
     </tbody> 
</table> 

そして、Excelを生成することになっていますPHPで

<form action="toexcel.php" method="post" target="_blank" 
     onsubmit=\'$("#datatodisplay").val($("#data").html())\'> 
     <input type="image" src="/images/icons/Floppy-48x48.png" width="12" height="12"> 
     <input type="hidden" id="datatodisplay" name="datatodisplay" /> 
     </form> 

そして右の表の上にフォーム:

header("Content-type: application/vnd.ms-excel; name='excel'"); 
header("Content-Disposition: filename=ficheroExcel.xls"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
echo $_POST['datatodisplay']; 

ただし、最初のヘッダーセットのみが表示されます。私はヘッダーを削除しようとしましたが、どちらも動作しません。

どういうところが間違っていますか?

答えて

0

のファイルを使用して、レイアウトを気にしない場合、それは

  • を検証してください、私はこれを解決することができました。私は私が何をしてきたかわからないんだけどthead要素の一部を固定した後、問題

    echo str_replace('\"','"', $_POST['datatodisplay']);; 
    
  • 0

    あなたのHTMLが間違っています。 HTML DTDは、テーブルのみONE thead要素と1つのtfoot要素が、複数のtbodyタグが含まれていてもよいと述べている:

    <!ELEMENT table 
    (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))> 
    

    これはあなたの主な問題です。 HTMLは無効です。それは別に

    • あなたはHTMLファイルはプレーン間違っている、.xlsファイルであることをブラウザに伝える(エクセル)されています。 .htmlで試してみてください。
    • 検証W3C HTMLバリデータを持つテーブルのHTMLページとあなたはCSVがチャットにもかかわらず、代わりにHTMLファイル
    +0

    :私は次のように追加してきましたので、そのエスケープ文字は、問題を解決する、JavaScriptでエスケープされていなかったようです存続する。 PHPスクリプトは、.xlsファイルを生成することになっています。私はこれを前にやってきました。私は今なぜ仕事ではないのか分かりません。 –

    +0

    HTMLは検証されますか? – cweiske

    +0

    はい、指定されていないdoctypeは例外です。 –

    関連する問題