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 相关文章推荐
php5 pdo新改动加载注意事项
Sep 11 PHP
PHP Curl多线程原理实例详解
Nov 06 PHP
php实现的替换敏感字符串类实例
Sep 22 PHP
php生成随机颜色的方法
Nov 13 PHP
分享自定义的几个PHP功能函数
Apr 15 PHP
详解PHP错误日志的获取方法
Jul 20 PHP
使用php实现从身份证中提取生日
May 09 PHP
Yii框架组件和事件行为管理详解
May 20 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
Aug 03 PHP
Thinkphp5.0框架视图view的模板布局用法分析
Oct 12 PHP
PHPUnit + Laravel单元测试常用技能
Nov 06 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 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
JAVA/JSP学习系列之七
2006/10/09 PHP
用PHP 4.2书写安全的脚本
2006/10/09 PHP
php中的实现trim函数代码
2007/03/19 PHP
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
完美解决thinkphp验证码出错无法显示的方法
2014/12/09 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
js 第二代身份证号码的验证机制代码
2011/05/12 Javascript
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
2015/10/13 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
nodejs使用express获取get和post传值及session验证的方法
2017/11/09 NodeJs
express框架下使用session的方法
2019/07/31 Javascript
[54:53]完美世界DOTA2联赛PWL S2 GXR vs PXG 第二场 11.18
2020/11/18 DOTA
详解python基础之while循环及if判断
2017/08/24 Python
Flask框架web开发之零基础入门
2018/12/10 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
python文件转为exe文件的方法及用法详解
2019/07/08 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
CSS3之多背景background使用示例
2013/10/18 HTML / CSS
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
欧姆龙医疗保健与医疗产品:Omron Healthcare
2020/02/10 全球购物
linux面试题参考答案(6)
2016/06/23 面试题
证券期货行业个人的自我评价
2013/12/26 职场文书
忠诚教育学习心得体会
2016/01/23 职场文书
七年级作文之英语老师
2019/10/28 职场文书
Java存储没有重复元素的数组
2022/04/29 Java/Android