名站网址导航为大驾家提供DedeCMS站点程序站点教程相关的知识,比如织梦程序安装教程,织梦程序系统故障等教程。
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'); } } |
相关具体代码如下解释:
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"> 删除属性 </a>
在后面加一段相关具体代码如下
<?php if($channelid==1) echo " <a href=\"toexcel.php\" class=\"coolbg\" target=\"_blank\">导出到excel</a>\r\n"; ?>
$channelid就是你的模型id,根据你导出的表填写。填写完之后打开网站的后台栏目站点列表就出现导出按钮
注意事项
转码问题,根据自己的实际情况
导出字段,多表或自定义模型的表可以通过left join
关于DedeCMS站点程序站点教程相关的知识,就说到这里了希望能帮助朋友们。织梦程序DEDECMS使用PhPEXCEL将网站内容数据导出到excel的相关具体操作方法