我有一个从mysql数据库生成的报告,但我希望用户能够将其导出到excel或pdf文件。我需要帮助。请参阅下面的代码:
<h2>Staff Register</h2>
<table align="justify" border="1" cellspacing="0" cellpadding="0" hspace="5px" vspace="5px">
<tr>
<th nowrap="nowrap"><div align="justify">Reg Date</div></th>
<th nowrap="nowrap"><div align="justify">Staff No</div></th>
<th nowrap="nowrap"><div align="justify">Surname</div></th>
<th nowrap="nowrap"><div align="justify">Firstname </div></th>
<th nowrap="nowrap"><div align="justify">Othername </div></th>
<th nowrap="nowrap"><div align="justify">Phone No</div></th>
<th nowrap="nowrap"><div align="justify">Sex</div></th>
<th nowrap="nowrap"><div align="justify">Age </div></th>
<th nowrap="nowrap"><div align="justify">Home Address </div></th>
<th nowrap="nowrap"><div align="justify">E Mail </div></th>
<th nowrap="nowrap"><div align="justify">Kin Name </div></th>
<th nowrap="nowrap"><div align="justify">Kin Add </div></th>
<th nowrap="nowrap"><div align="justify">Kin Phone </div></th>
<th nowrap="nowrap"><div align="justify">Marital Status </div></th>
</tr>
<?php
// Perform Inspection
$confirm_select = "SELECT * FROM staff_tab WHERE (status=1) ORDER BY staffno ASC";
$query=$connection->query($confirm_select);
while($result=mysqli_fetch_array($query)){
echo "<tr>";
echo "<td align='justify' nowrap='nowrap'>".$result['reg_date']."</td>";
echo "<td align='justify' nowrap='nowrap'>".$result['staffno']."</td>";
echo "<td align='justify' nowrap='nowrap'>".$result['surname']."</td>";
echo "<td align='justify' nowrap='nowrap'>".$result['firstname']."</td>";
echo "<td align='justify' nowrap='nowrap'>".$result['othername']."</td>";
echo "<td align='justify' nowrap='nowrap'>".$result['mobile']."</td>";
echo "<td align='justify' nowrap='nowrap'>".$result['sex']."</td>";
echo "<td align='justify' nowrap='nowrap'>".$result['age']."</td>";
echo "<td align='justify' nowrap='nowrap'>".$result['homeadd']."</td>";
echo "<td align='justify' nowrap='nowrap'>".$result['emailadd']."</td>";
echo "<td align='justify' nowrap='nowrap'>".$result['nextkin']."</td>";
echo "<td align='justify' nowrap='nowrap'>".$result['kinadd']."</td>";
echo "<td align='justify' nowrap='nowrap'>".$result['kinphone']."</td>";
echo "<td align='justify' nowrap='nowrap'>".$result['marital_status']."</td>";
}
//to get total row count
$res =$connection->query("SELECT staffno FROM staff_tab WHERE status=1");
$pat= ($connection->affected_rows);
?>
</table>
//将此表格导出为Excel,CSV或PDF格式的代码。
答案 0 :(得分:0)
只需制作一个像这样的单独的php文件
header('Content-type: text/csv');
header('Content-Disposition: attachment; filename="filename.csv"');
$f = fopen('php://output', 'w');
$confirm_select = "SELECT * FROM staff_tab WHERE (status=1) ORDER BY staffno ASC";
$query=$connection->query($confirm_select);
while($result=mysqli_fetch_array($query)){
fputcsv( $f, $result );
}
当然,您必须先连接到数据库。并将其链接到一个按钮/表单或者你有什么,我会做一个iframe等。
仅供参考。因为它的使用不足。
答案 1 :(得分:0)
我发现这是从解决另一个人问题的问题的最佳答案。它完美地运作
<?php
require_once("/includes/session.php");
require_once("/includes/db_connection.php");
require_once("/includes/functions.php");
// Table Name that you want
// to export in csv
$ShowTable = "staff_tab";
$today=date("dmY");
$FileName = "StaffRecord".$today.". csv";
$file = fopen($FileName,"w");
$sql = mysqli_query($connection,("SELECT * FROM $ShowTable LIMIT 500"));
$row = mysqli_fetch_assoc($sql);
// Save headings alon
$HeadingsArray=array();
foreach($row as $name => $value){
$HeadingsArray[]=$name;
}
fputcsv($file,$HeadingsArray);
// Save all records without headings
while($row = mysqli_fetch_assoc($sql)){
$valuesArray=array();
foreach($row as $name => $value){
$valuesArray[]=$value;
}
fputcsv($file,$valuesArray);
}
fclose($file);
header("Location: $FileName");
echo "Complete Record saves as CSV in file: <b style=\"color:red;\">$FileName</b>";
?>