php导出excel格式数据问题


Posted in PHP onMarch 11, 2014

解决2个问题:
1.身份证之类的文本数据自动转为科学计数法的问题。
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%

这些格式你也可以自定义,比如年月你可以定义为:yy-mm等等。那么知道了这些格式,怎么去把这些格式添加到cell中呢?很简单,我们只需要把样式添 加到对应的标签对(即闭合标签)即可。如<td></td>,给标签对<td></td>添加样式,如 下: <td  style="vnd.ms-excel.numberformat:@">410522198402161833</td>
同样,我们也可以给<div></div>添加样式,也可以给<tr>< /tr>,<table></table>添加样式;当我们在父标签对和子标签对都添加样式时,数据会以哪一个样式呈现 呢?经过测试,会以离数据最近的样式呈现.

例如身份证列的<td>的样式:

echo "<td style='vnd.ms-excel.numberformat:@'>".$printable."</td>\n";

$filename=iconv("UTF-8", "GB2312//IGNORE","会员名.xls");//date('Y-m-d-H-i-s').".xls";
header("Content-type:application/vnd.ms-excel");
            Header("Accept-Ranges:bytes");
            Header("Content-Disposition:attachment;filename=".$filename); //$filename导出的文件名
            header("Pragma: no-cache");
            header("Expires: 0");
echo '<html xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:x="urn:schemas-microsoft-com:office:excel"
    xmlns="http://www.w3.org/TR/REC-html40">
 <head>
    <meta http-equiv="expires" content="Mon, 06 Jan 1999 00:00:01 GMT">
    <meta http-equiv=Content-Type content="text/html; charset=gb2312">
    <!--[if gte mso 9]><xml>
    <x:ExcelWorkbook>
    <x:ExcelWorksheets>
      <x:ExcelWorksheet>
      <x:Name></x:Name>
      <x:WorksheetOptions>
        <x:DisplayGridlines/>
      </x:WorksheetOptions>
      </x:ExcelWorksheet>
    </x:ExcelWorksheets>
    </x:ExcelWorkbook>
    </xml><![endif]-->
</head>';
echo "<table><tr>
      <th>".iconv("UTF-8", "GB2312//IGNORE","会员名")."</th>
      <th>".iconv("UTF-8", "GB2312//IGNORE","账号")."</th>
      <th>".iconv("UTF-8", "GB2312//IGNORE","联系人")."</th>
</tr>";
            foreach ($list as $v) 
            {
                 echo "<tr>";
                 echo "<td>".iconv("UTF-8", "GB2312//IGNORE", $v["user_name"])."</td>";
                 echo "<td style='vnd.ms-excel.numberformat:@'>".$v["account_id"]."</td>";
                 echo "<td>".iconv("UTF-8", "GB2312//IGNORE", $v["contact_name"])."</td>";
             echo "</tr>";
            }
            echo "</table>";
PHP 相关文章推荐
求PHP数组最大值,最小值的代码
Oct 31 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
PHP计算2点经纬度之间的距离代码
Aug 12 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
Oct 14 PHP
PHP制作百度词典查词采集器
Jan 29 PHP
php表单提交实例讲解
Nov 12 PHP
Laravel路由设定和子路由设定实例分析
Mar 30 PHP
利用PHP判断文件是否为图片的方法总结
Jan 06 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
PHP实现的分解质因数操作示例
Aug 01 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
PHP判断当前使用的是什么浏览器(推荐)
Oct 27 PHP
PHP中对于浮点型的数据需要用不同的方法解决
Mar 11 #PHP
php设置允许大文件上传示例代码
Mar 10 #PHP
php如何解决无法上传大于8M的文件问题
Mar 10 #PHP
php中3种方法删除字符串中间的空格
Mar 10 #PHP
CodeIgniter框架中_remap()使用方法2例
Mar 10 #PHP
PHP文件大小格式化函数合集
Mar 10 #PHP
php GUID生成函数和类
Mar 10 #PHP
You might like
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
php cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
看了就知道什么是JSON
2007/12/09 Javascript
javascript 限制输入脚本大全
2009/11/03 Javascript
JavaScript OOP类与继承
2009/11/15 Javascript
javascript中直接写php代码的方法
2013/07/31 Javascript
jQuery实现公告文字左右滚动的实例代码
2013/10/29 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
jquery实现显示已选用户
2014/07/21 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
python 判断自定义对象类型
2009/03/21 Python
Python简单读取json文件功能示例
2017/11/30 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
Python I/O与进程的详细讲解
2019/03/08 Python
深入浅析Python 函数注解与匿名函数
2020/02/24 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
python实现将列表中各个值快速赋值给多个变量
2020/04/02 Python
python 基于UDP协议套接字通信的实现
2021/01/22 Python
Kathmandu澳洲户外商店:新西兰户外运动品牌
2017/11/12 全球购物
遗嘱公证书标准样本
2014/04/08 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
家长建议怎么写
2014/05/15 职场文书
2015年纪委工作总结
2015/05/13 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
导游词之长城八达岭
2019/09/24 职场文书
Python并发编程实例教程之线程的玩法
2021/06/20 Python