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代码包装修正版
Mar 15 PHP
php 表单数据的获取代码
Mar 10 PHP
一些 PHP 管理系统程序中的后门
Aug 05 PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 PHP
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
Jul 14 PHP
php中经典方法实现判断多维数组是否为空
Oct 23 PHP
php上传中文文件名乱码问题处理方案
Feb 03 PHP
php中动态调用函数的方法
Mar 16 PHP
PHP实现的蚂蚁爬杆路径算法代码
Dec 03 PHP
Laravel4中的Validator验证扩展用法详解
Jul 26 PHP
详细解读php的命名空间(二)
Feb 21 PHP
php post json参数的传递和接收处理方法
May 31 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获取url参数方法总结
2014/11/13 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
js 格式化时间日期函数小结
2010/03/20 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
2017/09/20 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
windows下python和pip安装教程
2018/05/25 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
Python 调用 Windows API COM 新法
2019/08/22 Python
Python如何测试stdout输出
2020/08/10 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
工商管理专业应届生求职信
2013/11/04 职场文书
医大实习自我鉴定
2013/12/07 职场文书
学习十八大报告感言
2014/02/04 职场文书
人民教师求职自荐信
2014/03/12 职场文书
中秋晚会策划方案
2014/06/12 职场文书
关于安全的广播稿
2014/10/23 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
会计工作自我鉴定范文
2019/06/21 职场文书
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
Java spring单点登录系统
2021/09/04 Java/Android