最新公告
  • 欢迎您光临牛气网,本站秉承“用心服务,做好服务”致力为站长提供优质的售后服务!立即加入我们
  • dede织梦后台增加导出内容到excel功能方法 不会乱码

    dede织梦系统怎样导出后台的文章或自定义模型中的数据到excel,并且不出现乱码

    在后台目录创建一个php文件toexcel.php,在最上面加入代码;

    require_once(dirname(__FILE__).'/config.php');

    require_once(DEDEINC.'/typelink.class.php');

    require_once(DEDEINC.'/datalistcp.class.php');

    require_once(DEDEADMIN.'/inc/inc_list_functions.php');

    加入导出到excel类;

    class Excel

    {

    private $head;

    private $body;

    public function addHeader($arr){

    foreach($arr as $headVal){

    $headVal = $this->charset($headVal);

    $this->head .= "{$headVal}\\t ";

    }

    $this->head .= "\\n";

    }

    public function addBody($arr){

    foreach($arr as $arrBody){

    foreach($arrBody as $bodyVal){

    $bodyVal = $this->charset($bodyVal);

    $this->body .= "{$bodyVal}\\t ";

    }

    $this->body .= "\\n";

    }

    }

    public function downLoad($filename=''){

    if(!$filename)

    $filename = date('YmdHis',time()).'.xls';

    header("Content-type:application/vnd.ms-excel");

    header("Content-Disposition:attachment;filename=$filename");

    header("Content-Type:charset=gb2312");

    if($this->head)

    echo $this->head;

    echo $this->body;

    }

    public function charset($string){

    return mb_convert_encoding($string,'GBK','auto');

    }

    }

    代码解释:

    1.输出列名数组,并转码

    public function addHeader($arr){

    foreach($arr as $headVal){

    $headVal = $this->charset($headVal);

    $this->head .= "{$headVal}\\t ";

    }

    $this->head .= "\\n";

    }

    2.输出导出内容数组,并转码

    public function addBody($arr){

    foreach($arr as $arrBody){

    foreach($arrBody as $bodyVal){

    $bodyVal = $this->charset($bodyVal);

    $this->body .= "{$bodyVal}\\t ";

    }

    $this->body .= "\\n";

    }

    }

    3.设置header头部信息和导出到excel内容,并输出到浏览器

    public function downLoad($filename=''){

    if(!$filename)

    $filename = date('YmdHis',time()).'.xls';

    header("Content-type:application/vnd.ms-excel");

    header("Content-Disposition:attachment;filename=$filename");

    header("Content-Type:charset=gb2312");

    if($this->head)

    echo $this->head;

    echo $this->body;

    }

    4.转码,这里不用iconv函数,有可能会与gd冲突导致输出空白。用

    public function charset($string){

    return mb_convert_encoding($string,'GBK','auto');

    }

    7.调用方法;

    $excel = new Excel();

    $excel->addHeader(array('列一','列二','列三','列四'));

    global $dsql;

    $sql="select 列一字段,列二字段,列三字段,列四字段 from 表名";

    $dsql->SetQuery($sql);

    $dsql->Execute();

    while($row = $dsql->GetArray()){

    $list[]=$row;

    }

    unset($row);

    $excel->addBody($list);

    $excel->downLoad();

    后天添加导出到excel代码:

    找到后台目录下的templets目录,下面有个content_list.htm文件,

    找到<a href="javascript:;" onClick="cAtts('attsDel',event,this)" class="coolbg">&nbsp;删除属性&nbsp;</a>

    在后面加一段代码

    <?php if($channelid==1) echo " <a href=\\"toexcel.php\\" class=\\"coolbg\\" target=\\"_blank\\">导出到excel</a>\\r\\n"; ?>

    $channelid就是你的模型id,根据你导出的表填写。填写完之后打开后台栏目列表就出现导出按钮

    注意事项

    转码问题,根据自己的实际情况

    导出字段,多表或自定义模型的表可以通过left join

    1、本站所有资源皆来源于网络和用户自行上传,因此不包括售后和技术,敬请谅解!
    2、本站不保证所提供的源码的准确性、安全性和功能完善性,资源仅用于学习用!
    3、您下载的资源,请务必在24小时内删除,资源仅提供本地测试,请勿商用或者非法用途都与本站无关,一切后果自负!
    4、如发现资源下载不了,或者侵权请及时联系客服或者邮箱admin#niuqi.net,#改为@!
    牛气网 » dede织梦后台增加导出内容到excel功能方法 不会乱码

    发表评论

    • 72会员总数(位)
    • 4096资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 207稳定运行(天)

    牛气网NIUQI.NET站长源码平台

    开通SVIP会员 了解详情