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 相关文章推荐
第十一节 重载 [11]
Oct 09 PHP
php 生成随机验证码图片代码
Feb 08 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
Jun 24 PHP
解析php取整的几种方式
Jun 25 PHP
php读取excel文件示例分享(更新修改excel)
Feb 27 PHP
递归删除一个节点以及该节点下的所有节点示例
Mar 19 PHP
php实现数组筛选奇数和偶数示例
Apr 11 PHP
php多个文件及图片上传实例详解
Nov 10 PHP
php+ajax无刷新分页实例详解
Dec 07 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
Oct 10 PHP
实例讲解PHP中使用命名空间
Jan 27 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 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脚本
2006/11/26 PHP
PHP模块memcached使用指南
2014/12/08 PHP
php+ajax实现文章自动保存的方法
2014/12/30 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
php反射学习之依赖注入示例
2019/06/14 PHP
jquery 学习之二 属性(html()与html(val))
2010/11/25 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
jquery移动节点实例
2015/01/14 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
jQuery鼠标移动图片上实现放大效果
2017/06/25 jQuery
在vue中使用jointjs的方法
2018/03/24 Javascript
vue使用jsonp抓取qq音乐数据的方法
2018/06/21 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
Python访问MySQL封装的常用类实例
2014/11/11 Python
Python中pygame安装方法图文详解
2015/11/11 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
2019/06/13 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
python获取整个网页源码的方法
2020/08/03 Python
HTML5新增的标签和属性归纳总结
2018/05/02 HTML / CSS
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
西班牙在线宠物商店:zooplus.es
2017/02/24 全球购物
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
医学生自我鉴定范文
2013/11/08 职场文书
国培教师自我鉴定
2014/02/12 职场文书
民族学专业职业生涯规划范文:积跬步以至千里
2014/09/11 职场文书
2019年预备党员的思想汇报:加深对党的认知
2019/09/25 职场文书
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL