+ -
当前位置:首页 → 问答吧 → TP导出Excel简便方法。

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里面,导完清空一下。



显示正常,编码可根据需要修改。

就是无法导出整张表,有分页,只能导出当前所查询的内容。

作者: ysl118   发布时间: 2011-08-03

  1. <?php
  2. function exportExcel($data_array, $keynames, $filename) {

  3. //组合表头行,以制表符\t分隔,并转码为gb18030

  4. $title = implode ( "\t", array_values ( $keynames ) );

  5. $title = iconv( "UTF-8", "GB18030", $title );
  6.         

  7. $result [] = $title;

  8. //组合表体行

  9. foreach ( $data_array as $data ) {

  10. //按行组合数据体

  11. $a1 = array ();

  12. foreach ( $keynames as $k => $v ) {

  13. if ($k == "time") {

  14. $data [$k] = date ( "Y-m-d", $data [$k] );

  15. }

  16. //utf8转码到gb18030,为了windows正常显示

  17. $a1 [] = iconv ( "UTF-8", "GB18030", preg_replace ( "/[\t]+/", " ", $data [$k] ) );

  18. }

  19. //以制表符分隔每列gb2312

  20. $result [] = implode ( "\t", $a1 );

  21. }
  22.         

  23. //为了windows下正常显示,以\r\n为换行符,分隔数据字符串

  24. $result = implode ( "\r\n", $result );

  25. header ( "Content-type: text/html; charset=GB18030" );

  26. header ( "Content-Disposition: attachment; filename=\"" . $filename . ".xls\"" );

  27. exit ( $result );
  28.     }
  29. ?>
复制代码

作者: ysl118   发布时间: 2011-08-03