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 相关文章推荐
判“新”函数:得到今天与明天的秒数
Oct 09 PHP
自动生成文章摘要的代码[PHP 版本]
Mar 20 PHP
测试您的 PHP 水平的题目
May 30 PHP
PHP反转字符串函数strrev()函数的用法
Feb 04 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
Feb 06 PHP
php中的Base62类(适用于数值转字符串)
Aug 12 PHP
php去除字符串中空字符的常用方法小结
Mar 17 PHP
php中namespace use用法实例分析
Jan 22 PHP
PHP三种方式实现链式操作详解
Jan 21 PHP
PHP token验证生成原理实例分析
Jun 05 PHP
php获取微信openid方法总结
Oct 10 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 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
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
动态添加js事件实现代码
2009/03/12 Javascript
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
使用delegate方法为一个tr标签加一个链接
2014/06/27 Javascript
AngularJS语法详解
2015/01/23 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
基于jquery实现放大镜效果
2015/08/17 Javascript
谈谈impress.js初步理解
2015/09/09 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
Python中实现三目运算的方法
2015/06/21 Python
django 修改server端口号的方法
2018/05/14 Python
浅谈python写入大量文件的问题
2018/11/09 Python
详解Python用户登录接口的方法
2019/04/17 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
欧洲最大的品牌水上运动服装和设备在线零售商:Wuituit Outlet
2018/05/05 全球购物
市场营销专业个人自荐信格式
2013/09/21 职场文书
网上卖盒饭创业计划书
2014/01/26 职场文书
同学聚会老师邀请函
2014/01/28 职场文书
三八妇女节活动主持词
2014/03/17 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
2014年科协工作总结
2014/12/09 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
社区文明倡议书
2015/04/28 职场文书