• <blockquote id="4oo2k"><center id="4oo2k"></center></blockquote>
  • 在線客服與您一對一交流
    當前位置: 主頁 > 行業新聞 > IT技術 >

    dedecms后臺增加php導出excel功能實現辦法

    這篇文章主要為大家詳細介紹了dedecms后臺增加php導出excel功能實現辦法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,有需要的朋友可以收藏方便以后借鑒。
     

    不少朋友希望織夢的后臺有導出后臺的文章或自定義模型中的數據到excel的功能,我也在網絡上找了一番,發現文章不少,但是功能有缺陷,一般缺陷就是到處后數據出現亂碼,這是個比較麻煩的小問題,整體功能實現了,但是亂碼卻嚴重影響我們的使用,如何處理和完善織夢后臺數據導出到excel,而且不亂碼呢?下面361源碼給大家整理出了一套比較適合的方法,分享給大家。

    在后臺目錄創建一個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');    
       }

    下面361源碼詳細給出上段代碼的解釋

    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');    
       }

    5.調用方法

    $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,根據你導出的表填寫。填寫完之后打開后臺欄目列表就出現導出按鈕

    到這里二次開發織夢后臺導出數據到excel的功能就完成了,有需求的朋友,去按照上面操作思路和步驟嘗試,注意操作前做好備份。

    以上就是dedecms后臺增加php導出excel功能實現辦法的全部內容,希望對大家的學習和解決疑問有所幫助,

    相關文章:

    • 帝國CMS是什么程序 帝國CMS是一套開源的靜態頁面程序,憑借超高的擴展性,很多知名的新聞站點、行業站點都是應用的帝國CMS后端。因為帝國CMS和dedecms一樣都是生成靜態頁面的,所以非常利于...

    • 域名解析DNS分為顯性URL和隱形URL,顯性URL和隱形URL有什么區別?隱形URL和顯性URL哪個更有利于SEO?顯性URL相當于域名了302重定向,隱形URL使用iframe框架技術隱藏真實目標地址,顯性URL更有利于...

    • 在常見的CMS系統中,我對dedecms算是比較熟悉的,自己網站用的也是這個系統。系統功能強大使用靈活,相信這也是它受到大多數中小站長青睞的原因。 再好的系統也有照顧不周的地方,很多站...

    • 第一次使用的插件是 pdfobject.js 百度網盤下載地址:http://pan.baidu.com/s/1kUPhYdT 加載 script src=/style/js/pdfobject.js /script script type=text/javascript window.onload = function (){ var success = new PDFObject({ url: pdf文件地...

    • 網上有一種方法是copy+unlink來移動文件,但是遇到大文件時會消耗大量時間,對性能不怎么友好,可以使用rename()來移動文件,速度非???關于rename()函數 bool rename ( string $oldname , string $newname...

    • 基于我們公司可選的幾種推廣方式: 一、關鍵詞優化排名推廣(推薦) 指定關鍵詞推廣,按天付費,推廣我們業務中最重要的一些關鍵詞,達到百度首頁才收費,大概一個關鍵詞10元/天左右。...

    • 插件介紹 wordpress程序網站在發布文章時可以給每一片文章添加與之相關的TAG標簽,對于TAG標簽可以生成很多頁面,增加搜索引擎對內容的抓取量。 WP Auto Keywords插件就是一款能自動給文章添加...

    • 5.7 生成列表頁 改動 include/arc.listview.class.php 1.先設置 關閉副欄目(在系統----系統基本參數性能選項里) 2.一般網站不需要 欄目交叉 交叉 所以 找到94行注釋掉: //獲得交叉欄目ID /*if($this-Type...

    • 使用preg_replace將刪除所有空白(包括制表符等) $string = user na me $string = preg_replace(/\s+/, , $string); echo $string; // username preg_replace(/\s/u, ,$string) u (PCRE8) 此修正符打開一個與perl不兼容的附加功能. 模式...

    • 1、公共相同部分用引入1個靜態文件方式,不解析 2、arclist標簽進來不使用屬性flag、不使用自定義字段addfields、不使用隨機、相同部分用引入1個靜態文件方式,不解析 3、tag標簽或者關鍵詞內鏈...

    • 公司:西安蟠龍網絡科技有限公司
    • 聯系人:張經理
    • 手機/微信:
    • Q Q: 點擊這里給我發消息
    • 地址:西安市雁塔區唐延南路11號逸翠園i都會
    噜噜射无码免费视频观看
  • <blockquote id="4oo2k"><center id="4oo2k"></center></blockquote>