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 相关文章推荐
Apache2 httpd.conf 中文版
Nov 17 PHP
配置支持SSI
Nov 25 PHP
PHP获取数组中某元素的位置及array_keys函数应用
Jan 29 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
php使用Jpgraph绘制柱形图的方法
Jun 10 PHP
PHP mysql事务问题实例分析
Jan 18 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
Jul 24 PHP
PHP页面静态化――纯静态与伪静态用法详解
Jun 05 PHP
PHP copy函数使用案例代码解析
Sep 01 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/10/09 PHP
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
PHP访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
PHP中数组定义的几种方法
2013/09/01 PHP
php中使用sftp教程
2015/03/30 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
jquery时间下拉框小例子
2013/04/15 Javascript
json中换行符的处理方法示例介绍
2014/06/10 Javascript
Javascript中replace()小结
2015/09/30 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
python利用不到一百行代码实现一个小siri
2017/03/02 Python
安装Python的教程-Windows
2017/07/22 Python
我就是这样学习Python中的列表
2019/06/02 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
Python实现AI换脸功能
2020/04/10 Python
Python实现代码块儿折叠
2020/04/15 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
家居设计专业个人自荐信范文
2013/11/26 职场文书
三好学生演讲稿范文
2014/04/26 职场文书
同学聚会邀请函
2015/01/30 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
MySQL学习之基础命令实操总结
2022/03/19 MySQL