1

次のコードを使用して、PHPテーブルをExcelファイルに出力できます。

<?php 

require("aacfs.php");

header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=Cancelled Flight Summary_sortbydate.xls");
header("Pragma: no-cache");
header("Expires: 0");

echo "<center>Ayala Aviation Corporation</center>";
echo "<center><b>Cancelled Flight Summary</b></center>";
echo "<center>For the period ________</center></br></br>";

$result=mysql_query("select * from reservation where status='Cancelled' order by bdate");   
echo "<center></br></br><table border=1 class='imagetable'><tr>
    <th>Flight Date</th> 
    <th>Client</th>
    <th>Group Code</th>
    <th>Itinerary</th>
    <th>ETD</th>
    <th>Aircraft</th>
    <th>ETA</th>
    <th>Reservation No.</th>
    <th>Last Status</th>
    <th>Remarks</th>
    <th>Reserved By</th>
    </tr>";
if(mysql_num_rows($result)>0)
{
while($row=mysql_fetch_array($result))
{
    $rvno=$row['reservno'];
    $yr=(string) date("Y");
    $rn=$yr."-".$rvno;
    echo"<tr><td>".$row['fdate']."</td><td>".$row['cliename']."</td><td>".$row['grpcode']."</td><td>".$row['itinerary']."</td><td>".$row['etd']."</td><td>".$row['acode']."</td><td>".$row['eta']."</td><td>".$rn."</td><td>".$row['lstatus']."</td><td>".$row['remarks']."</td><td>".$row['adminid']."</td></tr>";

}
}
else
    { ?>
        <tr><td colspan="11" style="text-align:center; color:#FF0000; font-size:16px;">*No Data Available!*</td></tr>
        <?php
    }
        ?><?php



?>

私はこれを試しました、

<?php 

require("aacfs.php");

header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=Cancelled Flight Summary_sortbydate.pdf");
header("Pragma: no-cache");
header("Expires: 0");

echo "<center>Ayala Aviation Corporation</center>";
echo "<center><b>Cancelled Flight Summary</b></center>";
echo "<center>For the period ________</center></br></br>";

$result=mysql_query("select * from reservation where status='Cancelled' order by bdate");   
echo "<center></br></br><table border=1 class='imagetable'><tr>
    <th>Flight Date</th> 
    <th>Client</th>
    <th>Group Code</th>
    <th>Itinerary</th>
    <th>ETD</th>
    <th>Aircraft</th>
    <th>ETA</th>
    <th>Reservation No.</th>
    <th>Last Status</th>
    <th>Remarks</th>
    <th>Reserved By</th>
    </tr>";
if(mysql_num_rows($result)>0)
{
while($row=mysql_fetch_array($result))
{
    $rvno=$row['reservno'];
    $yr=(string) date("Y");
    $rn=$yr."-".$rvno;
    echo"<tr><td>".$row['fdate']."</td><td>".$row['cliename']."</td><td>".$row['grpcode']."</td><td>".$row['itinerary']."</td><td>".$row['etd']."</td><td>".$row['acode']."</td><td>".$row['eta']."</td><td>".$rn."</td><td>".$row['lstatus']."</td><td>".$row['remarks']."</td><td>".$row['adminid']."</td></tr>";

}
}
else
    { ?>
        <tr><td colspan="11" style="text-align:center; color:#FF0000; font-size:16px;">*No Data Available!*</td></tr>
        <?php
    }
        ?><?php



?>

また、PDFファイルをダウンロードしますが、開くことはできません。

上記のコードと同じようにPHPテーブルをPDFファイルで出力することは本当に不可能ですか?または、2番目のコードで何か間違ったことをしているだけですか?この方法は私にとって最も簡単なので、それが不可能かどうか(もしそうなら、なぜですか?)または可能かどうかを知りたいと思っています。また、PHPを使用して外部ファイルを生成するのは初めてなので、これが不可能な場合に備えて、これを実現するための簡単な代替手段を指摘してください。どんな助けでもかまいません。ありがとう。

4

1 に答える 1

2

HTMLヘッダーを送信したので、HTMLをエコーアウトして、魔法のようにPDFバイナリを作成することを期待することはできません。PDFを作成するには、PHP PDFライブラリ(http://php.net/manual/en/book.pdf.php)またはその他のPHPベースのライブラリを参照してください。

同様に、Excelヘッダーを使用してそのようなHTMLを出力すると、使用可能なExcelファイルが作成されることにショックを受けました。これが機能するのは、Excelとの幸運な互換性によるものでなければなりません。より信頼性の高い方法でExcelファイルを作成する場合は、実際のExcelライブラリを使用する(またはExcelと互換性のあるCSVファイルを作成する)必要があります。

于 2013-02-19T01:30:53.840 に答える