沐鸣4注册登录网_如何不使用第三方类库用thinkphp导出Excel文件

www.pptschool.com 沐鸣平台注册 2022-05-19 706 次浏览 没有评论

学习tp3的程序员都知道,php导出excel文件只要通过第三方类库PHPExcel即可实现,而且简单方便,代码如下图所示:

PHPExcel

但有时因为是无法设置各个字段的宽度,有时会很多显示的问题,所以我下面讲的是用自己的方法生成的excel文件,它的原理跟生成纯静态页面是一样的,就是把html的文件换成excel文件而已,直接看下面代码:

 

静态页面:Excel.html

<!DOCTYPE html>

<html lang=”zh-CN”>

<head>

    <meta charset=”UTF-8″>

    <meta http-equiv=”x-ua-compatible” content=”IE=edge, chrome=1″>

    <meta name=”renderer” content=”webkit”>

    <title></title>

    <style type=”text/css”>

 

.table_list{border-collapse:collapse;margin:0px auto;margin-top:10px; background-color:#FFF;}

.table_list th {padding:15px 0;line-height:3;}

.table_list td{line-height:40px; height:40px;padding:10px 5px;text-align:center;}

.table_list thead td{text-align:center; height:40px; background-color:#eee;font-weight:bold;word-break:break-all;}

.table_list tfoot td{background-color:#ececec;text-align:center;}

 

</style>

</head>

 

<div class=”list”>

<table class=”table_list” border=”1″><thead><tr><th>姓名</th><th>等级</th><th>备注</th></tr></thead><tbody>

  <foreach name=”list” item=”item” key=”i”>

  <tr >

<td class=”am-text-middle”>{$item.realname}</td>

<td class=”am-text-middle”>{$item.level}</td>

  <td class=”am-text-middle”>{$item.detail}</td>

  </tr>

  </foreach>

  </tbody>

</table></div>

</body></html>

 

控制器(节选):

function excel(){

 $this->assign(‘list’, $lists); // 赋值数据集

   $content = $this->fetch(‘excel’);

  $filename = “excel/member_”.date(‘Ymdhis’).rand(10000).”.xls”;//导出的文件名称

  $handle=fopen($filename,”w”);//不存在这个文件就创建;

          fwrite($handle,$content);//将excel.html内容写到文件里

  $file = fopen($filename,”r”); // 打开文件

          // 输入文件标签

         Header(“Content-type: application/octet-stream”);

         Header(“Accept-Ranges: bytes”);

         Header(“Accept-Length: “.filesize($filename));

         Header(“Content-Disposition: attachment; filename=” . $filename);// 输出文件内容

        echo fread($file,filesize($file_dir . $filename)); //保存内容,并打开或下载文件

        fclose($file);

        exit();

}

全部代码如下所示:

导出的文件打开后如下图所示:

如果需要设置表格的属性,可以直接在table或excel.html文件里设置就可以了,但如果插入图片,图片的大小显示不好控制,只能原图显示大小,所以要注意这一点。

回顶部