花魁直播高品质美女在线视频互动社区 - 花魁直播官方版

 歡迎來到素材無憂網(wǎng),按 + 收藏我們
登錄 注冊 退出 找回密碼

dede織夢后臺增加導出內(nèi)容到excel功能方法 不會亂碼

時間: 2018-11-30 10:13 閱讀: 作者:素材無憂網(wǎng)

dede織夢系統(tǒng)怎樣導出后臺的文章或自定義模型中的數(shù)據(jù)到excel,并且不出現(xiàn)亂碼

 

在后臺目錄創(chuàng)建一個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.輸出列名數(shù)組,并轉碼

public function addHeader($arr){        

  foreach($arr as $headVal){            

$headVal = $this->charset($headVal);             

$this->head .= "{$headVal}\t ";        

}         

$this->head .= "\n";     

} 

 

2.輸出導出內(nèi)容數(shù)組,并轉碼

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內(nèi)容,并輸出到瀏覽器

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函數(shù),有可能會與gd沖突導致輸出空白。用

 

public function charset($string){         

return mb_convert_encoding($string,'GBK','auto');    

   } 

 

7.調(diào)用方法;

$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">&nbsp;刪除屬性&nbsp;</a>

在后面加一段代碼

<?php if($channelid==1) echo " <a href=\"toexcel.php\" class=\"coolbg\" target=\"_blank\">導出到excel</a>\r\n"; ?>

 

$channelid就是你的模型id,根據(jù)你導出的表填寫。填寫完之后打開后臺欄目列表就出現(xiàn)導出按鈕

注意事項

轉碼問題,根據(jù)自己的實際情況

導出字段,多表或自定義模型的表可以通過left join

版權聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權益請與我們聯(lián)系,我們將在24小時內(nèi)刪除!謝謝!

轉載請注明: dede織夢后臺增加導出內(nèi)容到excel功能方法 不會亂碼

標簽:  
模板推薦