php 导出到excel
有2种方法,
第一种是插件:PHPExcel插件,好用简单,功能强大,关于PHPExcel插件插件的使用方法有很多就不在这里阐述了;
第二种是:直接用header导出html,excel里的样式和格式需在css里写好
这里需注意2个问题:
1.中文乱码:需在header里注明正确的编码格式,一般为utf-8
2.格式定义:如果不做格式定义,会出现身份证、订单等数字长度过长时自动转换为科学计数法的问题
excel从web页面上导出的原理:当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取 它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。 下面就列出常用的一些格式:
1) 文本:vnd.ms-excel.numberformat:@
2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd
3) 数字:vnd.ms-excel.numberformat:#,##0.00
4) 货币:vnd.ms-excel.numberformat:¥#,##0.00
5) 百分比:vnd.ms-excel.numberformat: #0.00%
<?php
header ( "Content-type:application/vnd.ms-excel" );
header ( "Content-Disposition:filename=list.xls"); //list.xls为文件名
header("Pragma: no-cache");
header("Expires: 0");
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
table,tr{border-style:none;}
td{
text-align:center;
font-size:12px;
font-family:Arial, Helvetica, sans-serif;
border:#1C7A80 1px solid;
color:#152122;
width:100px;
}
.title{background:#7DDCF0; color:#FFFFFF; font-weight:bold;}
</style>
</head>
<body>
<table>
<tr>
<td>订单号</td>
<td>姓名</td>
<td>金额</td>
<td>时间</td>
</tr>
<?php foreach($list as $v): ?>
<tr>
<td style="vnd.ms-excel.numberformat:@"><?php echo $v['order']?></td>
<td><?php echo $v['name']?></td>
<td style="vnd.ms-excel.numberformat:¥#,##0.00"><?php echo $v['money']?></td>
<td style="vnd.ms-excel.numberformat:yyyy-mm-dd"><?php echo date('Y-m-d H:i:s',$v['datetime']);?></td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>