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>
答案 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并尝试它=)
哦,你不能在上面写表,只能以分号分隔回显数据。每列的每个数据,分号将下一个数据放入下一列,载体返回写入下一行。喝彩!