php 导出到excel

  • Jesse
  • 2016-05-26 18:13:00
  • 3221

2种方法,

 

第一种是插件:PHPExcel插件,好用简单,功能强大,关于PHPExcel插件插件的使用方法有很多就不在这里阐述了;

 

第二种是:直接用header导出htmlexcel里的样式和格式需在css里写好

 

这里需注意2个问题:

1.中文乱码:需在header里注明正确的编码格式,一般为utf-8

2.格式定义:如果不做格式定义,会出现身份证、订单等数字长度过长时自动转换为科学计数法的问题

excelweb页面上导出的原理:当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以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>