TP导出Excel简便方法。
时间:2011-08-03
来源:互联网
前几天正好碰到要导出Excel,就在网上搜方法,试过很多犯方法,包括PHPExcel,还有TP论坛上的一些方法,都没用。
后来自己找了一个。
<?php
function exportExcel($data_array, $keynames, $filename) {
//组合表头行,以制表符\t分隔,并转码为gb18030
$title = implode ( "\t", array_values ( $keynames ) );
$title = iconv( "UTF-8", "GB18030", $title );
$result [] = $title;
//组合表体行
foreach ( $data_array as $data ) {
//按行组合数据体
$a1 = array ();
foreach ( $keynames as $k => $v ) {
if ($k == "time") {
$data [$k] = date ( "Y-m-d", $data [$k] );
}
//utf8转码到gb18030,为了windows正常显示
$a1 [] = iconv ( "UTF-8", "GB18030", preg_replace ( "/[\t]+/", " ", $data [$k] ) );
}
//以制表符分隔每列gb2312
$result [] = implode ( "\t", $a1 );
}
//为了windows下正常显示,以\r\n为换行符,分隔数据字符串
$result = implode ( "\r\n", $result );
header ( "Content-type: text/html; charset=GB18030" );
header ( "Content-Disposition: attachment; filename=\"" . $filename . ".xls\"" );
exit ( $result );
}
?>
开发用的是TP2.0 这段代码直接放在common.php里,
$data_array = Session::get('sql');
$keynames=array("username"=>"表头");
$filename="表名";
后2个个可以自定义,$data_array 取的是SQL语句返回的结果集,可以保存在session里面,导完清空一下。
显示正常,编码可根据需要修改。
就是无法导出整张表,有分页,只能导出当前所查询的内容。
后来自己找了一个。
<?php
function exportExcel($data_array, $keynames, $filename) {
//组合表头行,以制表符\t分隔,并转码为gb18030
$title = implode ( "\t", array_values ( $keynames ) );
$title = iconv( "UTF-8", "GB18030", $title );
$result [] = $title;
//组合表体行
foreach ( $data_array as $data ) {
//按行组合数据体
$a1 = array ();
foreach ( $keynames as $k => $v ) {
if ($k == "time") {
$data [$k] = date ( "Y-m-d", $data [$k] );
}
//utf8转码到gb18030,为了windows正常显示
$a1 [] = iconv ( "UTF-8", "GB18030", preg_replace ( "/[\t]+/", " ", $data [$k] ) );
}
//以制表符分隔每列gb2312
$result [] = implode ( "\t", $a1 );
}
//为了windows下正常显示,以\r\n为换行符,分隔数据字符串
$result = implode ( "\r\n", $result );
header ( "Content-type: text/html; charset=GB18030" );
header ( "Content-Disposition: attachment; filename=\"" . $filename . ".xls\"" );
exit ( $result );
}
?>
开发用的是TP2.0 这段代码直接放在common.php里,
$data_array = Session::get('sql');
$keynames=array("username"=>"表头");
$filename="表名";
后2个个可以自定义,$data_array 取的是SQL语句返回的结果集,可以保存在session里面,导完清空一下。
显示正常,编码可根据需要修改。
就是无法导出整张表,有分页,只能导出当前所查询的内容。
作者: ysl118 发布时间: 2011-08-03
- <?php
- function exportExcel($data_array, $keynames, $filename) {
-
- //组合表头行,以制表符\t分隔,并转码为gb18030
-
- $title = implode ( "\t", array_values ( $keynames ) );
-
- $title = iconv( "UTF-8", "GB18030", $title );
-
-
- $result [] = $title;
-
- //组合表体行
-
- foreach ( $data_array as $data ) {
-
- //按行组合数据体
-
- $a1 = array ();
-
- foreach ( $keynames as $k => $v ) {
-
- if ($k == "time") {
-
- $data [$k] = date ( "Y-m-d", $data [$k] );
-
- }
-
- //utf8转码到gb18030,为了windows正常显示
-
- $a1 [] = iconv ( "UTF-8", "GB18030", preg_replace ( "/[\t]+/", " ", $data [$k] ) );
-
- }
-
- //以制表符分隔每列gb2312
-
- $result [] = implode ( "\t", $a1 );
-
- }
-
-
- //为了windows下正常显示,以\r\n为换行符,分隔数据字符串
-
- $result = implode ( "\r\n", $result );
-
- header ( "Content-type: text/html; charset=GB18030" );
-
- header ( "Content-Disposition: attachment; filename=\"" . $filename . ".xls\"" );
-
- exit ( $result );
- }
- ?>
作者: ysl118 发布时间: 2011-08-03
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28