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文件,
找到 删除属性
在后面加一段代码
导出到excelrn”; ?>
$channelid就是你的模型id,根据你导出的表填写。填写完之后打开后台栏目列表就出现导出按钮
注意事项
转码问题,根据自己的实际情况
导出字段,多表或自定义模型的表可以通过left join
dede织梦后台增加导出内容到excel功能方法 不会乱码
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《dede织梦后台增加导出内容到excel功能方法 不会乱码》
文章链接:https://www.ibytx.com/987.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
文章名称:《dede织梦后台增加导出内容到excel功能方法 不会乱码》
文章链接:https://www.ibytx.com/987.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
相关推荐
#十月狂欢#Hostease:购虚拟主机送独立IP,购买美国/香港服务器,加送125个独立IP,可选不同C段,新老同享,先到先得,送完即止
#即将结束#SiteGround:19周年庆特别优惠,外贸主机/WordPress主机,年付低至$23.88,月付$1.99起
SiteGround:19周年庆特别优惠,外贸主机/WordPress主机,年付低至$23.88,月付$1.99起
#2022 年黑色星期五/网络星期一优惠促销#Namesilo: 域名新注册和转入优惠,.COM域名 首年9.85美元
#黑五限时优惠#OVHcloud:高防独立服务器月付18.99美元起,高防VPS月付4.14美元起,公有云赠送200美元券,免费使用30天
HostPapa:黑色星期五和网络星期一特价,WordPress主机/外贸主机 月付低至$0.95起
HostPapa:2022黑五优惠,入手外贸主机最佳时机,月付低至$0.95
bacloud黑五促销:便宜服务器,E5v4U26Q独立服务器6折,Linux KVM VPS 5折,虚拟主机7折,可选美国/荷兰/立陶宛机房