dede织梦后台增加php导出到excel功能不出现乱码
阅读 次 · 发布日期 2018-08-14 21:36 ·在后台目录创建一个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"> 删除属性 </a>
在后面加一段代码
<?php if($channelid==1) echo " <a href=\"toexcel.php\" class=\"coolbg\" target=\"_blank\">导出到excel</a>\r\n"; ?>
$channelid就是你的模型id,根据你导出的表填写。填写完之后打开后台栏目列表就出现导出按钮
为您推荐
- 织梦dedecms列表页点击按价格排序比如从高到低排序进行商品筛选 2018-07-11
- Ubuntu/Debian上安装 PHP 5.3, Nginx 和 PHP-fpm 2018-08-06
- dedecms dede:list arclist自定义字段排序 2018-07-11
- dede数据还原系统后台空白不显示的解决方案 2018-08-27
- 织梦dedecms{dede:list}列表按多种排序显示 2018-07-11
- 织梦联动类型地区联动三级修复以及省份-市级-地区分开+高亮 2018-11-16
- DedeCMS v5.7 注册用户任意文件删除漏洞 /member/inc/archives_check_edit.ph 2018-10-30
- 织梦dedecms系统首页调用内容分类信息模型联动类别的方法 2018-11-20
本站关键词:信宏达网络,信宏达科技,北京网站建设公司,北京网站建设,北京网站设计,北京企业网站建设,朝阳网站建设,海淀设计制作,西城网页设计,网站制作公司,北京高端网站建设,企业网站建设,北京建站,营销型网站建设,自适应网站制作,html5网站制作,上地做网站公司,西二旗网站建设,中关村网站建设,信宏达网络科技有限公司,北京信宏达网络科技有限公司