您现在的位置是:首页 > 教程 > dedecms教程dedecms教程
dedecms织梦后台增加php导出到excel功能不出现乱码代码实例
元霜2023-09-19 11:24:46dedecms教程已有人查阅
导读dede织梦系统怎样导出后台的文章或自定义模型中的数据到excel,并且不出现乱码在后台目录创建一个php文件toexcel.php,在最上面加入代码;r
dede织梦系统怎样导出后台的文章或自定义模型中的数据到excel,并且不出现乱码
在后台目录创建一个php文件toexcel.php,在最上面加入代码;
1.输出列名数组,并转码
找到后台目录下的templets目录,下面有个content_list.htm文件,
找到
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">删除属性</a>
在后面加一段代码
<?php if($channelid==1) echo " <a href=\"toexcel.php\" class=\"coolbg\" target=\"_blank\">导出到excel</a>\r\n"; ?>
$channelid就是你的模型id,根据你导出的表填写。填写完之后打开后台栏目列表就出现导出按钮本文标签:
很赞哦! ()
相关文章
随机图文
-
dede织梦栏目链接和文章链接的调用方法
我们知道dede中调用带链接的栏目名称是使用[field:typelink/]这个标签,dede更详尽的调用方法是这样的:[field:typename /] 前边是栏目链接地址 -
织梦标签channel实现列表页调用当前栏目子类的代码示例
标记简介:织梦常用标记,通常用于网站顶部以获取站点栏目信息,方便网站会员分类浏览整站信息在没有指定typeid的情况下,type标记与模板的环境有关,如,模板生成到栏目一 -
dede网站中加入栏目文章数统计的方法
涉及到文件:include/common.func.php在include/common.func.php最下面也就是?>前加入以下代码 -
dedecms专题页面文章调用的几种方法代码实例
关于DedeCMS专题页面的文章的调用,下面给出三种调用方式,可以解决全部页面的调用(首页、一级、二级、单页、内容页均有适合的)
留言与评论 (共有 条评论) |