在PHP中将表导出为Excel文件

时间:2016-06-22 10:03:49

标签: php html

CSS在UI中有效但在Excel中无效。任何人都可以帮助我。

下面的代码会将表导出到excel中,但不能在标记之前提供空间。

<?php 
    echo $excel_data = '<table border="1">
        <thead>
            <th align="left">S.No.</th>
            <th align="left">Name</th>
            <th align="left">DOJ</th>
        </thead>
        <tbody>
            <tr>
                <td align="left">1</td>
                <td align="left">Sreekanth Kuriyala</td>
                <td align="left">04-06-2015</td>
            </tr>
            <tr>
                <td align="left">2</td>
                <td style="padding-left:20px;">SK</td>
                <td align="left">26-07-2015</td>
            </tr>
        </tbody>
    </table>';
    $excel_file = 'Reports.xls';
    file_put_contents ($excel_file, $excel_data);
?>
</br>
</br>
<a href="<?php echo $excel_file; ?>" download>Export to Excel</a>   

1 个答案:

答案 0 :(得分:-1)

你必须创建一个CSV文件,只需创建一个新的php文件,其中包含一个需要db select结果的函数。

然后只是回声cols分隔;和承运人返回下一行。

这是我做的一个功能:

<?php
function printcsv($result){
                  //result of database select 
header('Content-Encoding: UTF-8');
header('Content-type: text/csv; charset=UTF-8');
header('Content-Disposition: attachment; filename=example.csv');
echo "\xEF\xBB\xBF";
$nl = "\n";
//this will be the carrier return var
    if($rs = $result->fetch_array(MYSQLI_NUM)){
        while($rs != ''){
            echo $rs[0].";".$rs[1].";".$rs[2].";".$rs[3].";".$rs[4].";".$rs[5].";".$nl;
            $rs = $result->fetch_array(MYSQLI_NUM);
        }
    }
}
?>

根据你想要的结果改变我的mysqli_fetch_array并尝试它=)

哦,你不能在上面写表,只能以分号分隔回显数据。每列的每个数据,分号将下一个数据放入下一列,载体返回写入下一行。

喝彩!