好消息:所有模板免费下载!同时承接各类网站编辑制作、仿站业务,详情联系客服QQ:282140068
织梦仿站、织梦安装、修改、安全处理、疑难解决、PHP网站开发、网页设计、改版、点击这里
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类;
|
public function addHeader($arr){
|
|
foreach($arr as $headVal){
|
|
$headVal = $this->charset($headVal);
|
|
$this-> head .= "{$headVal}t " ;
|
|
public function addBody($arr){
|
|
foreach($arr as $arrBody){
|
|
foreach($arrBody as $bodyVal){
|
|
$bodyVal = $this->charset($bodyVal);
|
|
$this->body .= "{$bodyVal}t " ;
|
|
public function downLoad($filename= '' ){
|
|
$filename = date ( 'YmdHis' , time ()). '.xls' ;
|
|
header( "Content-type:application/vnd.ms-excel" );
|
|
header( "Content-Disposition:attachment;filename=$filename" );
|
|
header( "Content-Type:charset=gb2312" );
|
|
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 " ;
|
|
2.输出导出内容数组,并转码
|
public function addBody($arr){
|
|
foreach($arr as $arrBody){
|
|
foreach($arrBody as $bodyVal){
|
|
$bodyVal = $this->charset($bodyVal);
|
|
$this->body .= "{$bodyVal}t " ;
|
|
3.设置header头部信息和导出到excel内容,并输出到浏览器
|
public function downLoad($filename= '' ){
|
|
$filename = date ( 'YmdHis' , time ()). '.xls' ;
|
|
header( "Content-type:application/vnd.ms-excel" );
|
|
header( "Content-Disposition:attachment;filename=$filename" );
|
|
header( "Content-Type:charset=gb2312" );
|
|
4.转码,这里不用iconv函数,有可能会与gd冲突导致输出空白。用
|
public function charset($string){
|
|
return mb_convert_encoding($string, 'GBK' , 'auto' );
|
|
7.调用方法;
|
$excel->addHeader(array( '列一' , '列二' , '列三' , '列四' ));
|
|
$sql= "select 列一字段,列二字段,列三字段,列四字段 from 表名" ;
|
|
while ($row = $dsql->GetArray()){
|
|
后天添加导出到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>rn"; ?>
$channelid就是你的模型id,根据你导出的表填写。填写完之后打开后台栏目列表就出现导出按钮
注意事项
转码问题,根据自己的实际情况
导出字段,多表或自定义模型的表可以通过left join