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.ini实现Mysql导入数据库文件最大限制的修改方法
Dec 11 PHP
phpmyadmin 访问被拒绝的真实原因
Jun 15 PHP
codeigniter框架批量插入数据
Jan 09 PHP
php实现根据字符串生成对应数组的方法
Sep 22 PHP
php判断用户是否手机访问代码
Jun 08 PHP
PHP连接MSSQL方法汇总
Feb 05 PHP
PHP获取用户客户端真实IP的解决方案
Oct 10 PHP
php实现通过soap调用.Net的WebService asmx文件
Feb 27 PHP
PHP实现负载均衡session共享redis缓存操作示例
Aug 22 PHP
PHP的简单跳转提示的实现详解
Mar 14 PHP
Swoole源码中如何查询Websocket的连接问题详解
Aug 30 PHP
浅谈PHP7中的一些小技巧
May 29 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数据库类
2009/05/27 PHP
PHP 之Section与Cookie使用总结
2012/09/14 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
php中final关键字用法分析
2016/12/07 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
2018/04/18 jQuery
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
python连接mysql并提交mysql事务示例
2014/03/05 Python
Python实现简单的可逆加密程序实例
2015/03/05 Python
python 性能提升的几种方法
2016/07/15 Python
利用Celery实现Django博客PV统计功能详解
2017/05/08 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
python函数的万能参数传参详解
2019/07/26 Python
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
药学专业大学生自荐信
2013/09/28 职场文书
学习十八大坚定理想信念心得体会
2014/03/11 职场文书
《青山处处埋忠骨》教学反思
2014/04/22 职场文书
致青春观后感
2015/06/09 职场文书
单位工作证明范本
2015/06/15 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
React 高阶组件HOC用法归纳
2021/06/13 Javascript