php输出excel表格乱码和第一个0不显示的解决方法(详细)
而关于php的也有,但是大多都是用phpExcel导出的方法或者spreadsheet等类或者控件之类的导出方法,而我所在维护的系统却用很简单的方法,如下,网上很少有讲如何设置要导出数据的EXcel格式。
我导出EXcel的主要代码的前面部分:
<?
if(count($data)>40000){
$filename_type='csv';
}else{
$filename_type='xls';
}
header("Content-Type: application/vnd.ms-excel");
Header("Accept-Ranges:bytes");
Header("Content-Disposition:attachment;filename=".$filename.".".$filename_type); //$filename导出的文件名
header("Pragma: no-cache");
header("Expires: 0");
if($filename_type=='xls'){
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>';
}
后面就是以<table><tr><td></td></tr></table>
的格式输出数据
查了大半天终于查到了一点有用的资料,现在摘抄如下:
“首先,我们了解一下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>
添加样式;当我们在父标签对和子标签对都添加样式时,数据会以哪一个样式呈现 呢?经过测试,会以离数据最近的样式呈现.
于是按照他说的方法设置了导出数据时对应的身份证列的的样式:
echo "<td style='vnd.ms-excel.numberformat:@'>".$printable."</td>\n";
果然成功了,没有枉费了查半天的资料。
php输出excel表格乱码和第一个0不显示的解决方法(详细)相关推荐
- php导出表格是乱码怎么办,数据库导出excel表格是乱码怎么办-Excel表格乱码问题怎么解决?...
POI导出excel表时文件名变成乱码怎么办 在乱码的表格上键-用记事本打 2 这里会看到里面的文字都恢复了. 3 接下来文件-另存为 4 另存的时候刻改一下文件名,这里改成1副本,格式为txt,然后 ...
- c语言 printf分栏输出,excel表格分栏打印输出的两种巧妙方法_excel教程
有时Excel中的表格只有两三列内容,这样在处理完表格中数据如果直接打印输出就会显得很不美观,且浪费纸张.如果能象Word和WPS那样具有分栏功能就好了.下面我们就借助外力对Excel中的表格实现分栏 ...
- 在Excel表格中如何使一个很长的表,打印时每页都能打出表头
在Excel表格中如何使一个很长的表,打印时每页都能打出表头 目录 在Excel表格中如何使一个很长的表,打印时每页都能打出表头 1. 找到"页面布局"选项卡点击打印标题 2.选择 ...
- 打开excel表格会自动打开一个空表格
原因: 有个MySql产品插件,作为Excel加载项,每次打开任何一个Excel都会被Excel加载,弹出一个空表文件. 解决方法: 该MySql产品看起来没多大用,找到卸载该MySql产品即可 方法 ...
- excel文档最下面被计算机框挡住,电脑excle数据栏?求电脑专家 电脑屏幕下方的任务栏把excel表格最下面那一栏挡住显示不出来了 自动求和数据看不到。。。...
windows7的EXCEL中工具栏没数据分析选项怎么办? 这个和WIN7么关系啊.要用什么office版本.我用的是2010的,里面是有的. "Microsoft Office 按钮&qu ...
- html word表格边框变成表格,word表格边框显示不全跨页面显示的解决方法
word表格是很多伙伴常会使用到的一款办公软件,那你晓得边框显示不全跨页面显示如何处理吗?如若不了解的话,就看看下文word表格边框显示不全跨页面显示的解决方法吧. word表格边框显示不全跨页面显示 ...
- 电子邮件乱码产生的主要原因及几种解决方法
关于电子邮件乱码 --转摘自中国科学院,作者不详 本文主要介绍邮件乱码产生的主要原因及几种解决方法: E-mail编码标准 由于一个汉字是用两个扩展 ASCII码表示,对DOS.Windows ...
- POI 导出excel带小数点的数字格式显示不对解决方法
POI 导出excel带小数点的数字格式显示不对解决方法 参考文章: (1)POI 导出excel带小数点的数字格式显示不对解决方法 (2)https://www.cnblogs.com/firstd ...
- '操作必须使用一个可更新的查询'解决方法
原文:'操作必须使用一个可更新的查询'解决方法 当我们用ASP执行修改数据库记录操作时常会遇到以下问题 错误类型: Microsoft OLE DB Provider for ODBC Drivers ...
最新文章
- 用SimpleDateFormat类设置时间格式
- yii2快速導出phpexcel
- 工信部等六部门公布2021年度国家绿色数据中心名单
- Android中WebView加载sdcard中的html时提示:ERR_FILE_NOT_FOUND和ERR_ACCESS_DENIED
- 直播报名 | CUDA优化:高性能库cuBLAS使用指南
- 结构化查询语言(Structured Query Language)
- Shell脚本自动备份数据库
- win7插了耳机还是外放_有哪些令人叫绝的智障设计?网友:手机取消耳机孔
- 用Pytorch实现逻辑回归分类
- [Ext JS ] 7.25.1 Form或者面板自动定位到错误的输入框
- Python安装Pytorch教程(图文详解)
- HashMap、weakHashMap、LinkedHashMap和TreeMap四者区别与联系
- MySQL 学生信息管理系统 表格信息
- 软考系统集成项目管理工程师重要知识点
- 在poi-tl的区块对中实现用布尔值插入Word分页符的一种方法
- android 耳机数据传输,智能手机耳机电路工作原理
- catalina 无法验证macos_macOS 10.15 Catalina无法打开app,提示“因为无法确认开发者身份”问题的解决方法......
- 计算机重启很慢,教您win7电脑关机很慢的解决方法
- 智能化市场「分层」开始,软硬「解耦」进入深水区
- 【Python+数学】笛卡儿积
热门文章
- 最新Java校招面试题及答案
- MySQL按时间查找
- 【Unity】UGUI无法修改字体大小
- 别人要访问我的电脑上部署的tomcat,必须关闭防火墙吗?
- Bootstrap 模态对话框只加载一次 remote 数据的解决办法
- 第二章 系统设置及基本操作
- 单片机系统中的红外通信接口
- phpMyAdmin 尝试连接到MySQL 服务器的错误解决方法
- mysql5.0.27+apache2.0.59+php5.2.0+phpMyAdmin-2.6.4-pl3
- 确保您的Silverlight 1.0运行时间组件是最新版本