dapeng 2012-11-02 09:25:14 3855次浏览 9条回复 5 2 0
function down_xls($data, $keynames, $name='dataxls') {
    $xls[] = "<html><meta http-equiv=content-type content=\"text/html; charset=UTF-8\"><body><table border='1'>";
    $xls[] = "<tr><td>ID</td><td>" . implode("</td><td>", array_values($keynames)) . '</td></tr>';
    $index = 0;
    if (preg_match('/MSIE/',$_SERVER['HTTP_USER_AGENT'])) {
        $name = rawurlencode($name);
    }
    foreach($data As $o) {
        $line = array(++$index);
        foreach($keynames AS $k=>$v) {
            $line[] = htmlspecialchars($o[$k]);
        }
        $xls[] = '<tr><td>'. implode("</td><td>", $line) . '</td></tr>';
    }
    $xls[] = '</table></body></html>';
    $xls = join("\r\n", $xls);
    header("Content-Type: application/vnd.ms-excel");
    header('Content-Disposition: attachment; filename="'.$name.'.xls"');
    die(mb_convert_encoding($xls,'UTF-8','UTF-8'));
}
$user_info=array(
  0=>array("uid"=>"12","name"=>"zhangsan"),
  1=>array("uid"=>"132","name"=>"zhangsanddd"),
);
$key_name=array(
  "uid"=>"用户ID",
  "name"=>"姓名",
);
down_xls($user_info,$key_name,"用户信息表");

直接调用这个方法就可以了

觉得很赞
  • 回复于 2012-11-02 09:35 举报

    这个简单多了,哈哈。。

  • 回复于 2012-11-02 09:38 举报

    我昨天弄得 找了半天yii上面excel没找到 我就整合了一个

  • 回复于 2012-11-02 15:05 举报

    没人顶我自己顶

  • 回复于 2012-11-16 11:28 举报

    请问一下:
    我在本地环境下运行正常
    但是传到测试机上去报 HTTP 500: 服务器尝试执行请求时遇到了意外情况错误
    基本都是自己写的页面出现的问题
    大概是哪里出错了呢?

  • 回复于 2012-11-16 19:29 举报

    HTTP 500 - 内部服务器错误
    应该是服务器配置的问题,跟程序无关。

  • 回复于 2012-11-16 19:33 举报

    我总结了一下错误情况:
    1、大小写区分问题
    2、跨控制器的跳转貌似也出了问题

  • 回复于 2012-11-16 21:35 举报

    对Linux是区分大小写的,windows的文件名目录都不区分大小写。

  • 回复于 2015-10-12 17:41 举报

    的确很好用,也很方便,求一个导出EXCEL单元格换行的方法有没有!

  • 回复于 2016-09-01 15:08 举报

    good 速度很快

您需要登录后才可以回复。登录 | 立即注册