Yii框架擴展CGridView如何增加導出CSV功能-創(chuàng)新互聯(lián)

這篇文章主要介紹Yii框架擴展CGridView如何增加導出CSV功能,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)企業(yè)建站,十年網(wǎng)站建設經驗,專注于網(wǎng)站建設技術,精于網(wǎng)頁設計,有多年建站和網(wǎng)站代運營經驗,設計師為客戶打造網(wǎng)絡企業(yè)風格,提供周到的建站售前咨詢和貼心的售后服務。對于成都網(wǎng)站設計、成都網(wǎng)站制作中不同領域進行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準市場調研,為客戶提供的解決方案。

具體如下:

Yii提供的CGridView組件沒有內置數(shù)據(jù)導出功能,不過我們可以通過擴展該組件來添加該功能。

具體方法如下:

1、首先派生一個子類,添加一個action成員,在該視圖的init函數(shù)中判斷是瀏覽動作還是數(shù)據(jù)導出動作,如果是瀏覽動作者則保持默認行為,否則輸出csv文件。

public function init()
{
  if($this->action == 'export')
  {
    parent::init();
    $this->genCsv();
  }
  else
  {
    parent::init();
  }
}

2、處理csv文件的輸出:

protected function genCsv()
{
  header("Content-Type: text/csv; charset=GB2312");
  header('Content-Disposition: attachment; filename="'.$this->fileName.'"');
  //add your content dump codes here
  flush();
}

3、然后在表格控件界面上添加一個csv導出按鈕


覆蓋其renderItems()方法如下:

public function renderItems()
{
  if(Yii::app()->user->checkAccess('administrator'))
  {
    echo '<div class="toolBar">';
    echo '<form action="'.CHtml::normalizeUrl(array($this->action)).'&id='.$this->id.'" method="post">';
    foreach($this->getController()->getActionParams() as $name => $value)
    {
      echo '<input type="hidden" name="'.addcslashes($name,'"').'" value="'.addcslashes($value,'"').'" />';
    }
    echo '<input type="image" title="'.Yii::t('ifCMS','Export to CSV').'" src="'.Yii::app()->theme->BaseUrl.'/images/ico-csv.png" alt="Submit">';
    echo '</form>';
    echo '</div>';
  }
  parent::renderItems();
}

4、然后在點擊CSV的動作處理比如actionCsv()中render單個表格視圖,模板如下

<?php
  $this->widget('application.extensions.grid.MyGridView', array(
  'id'=>'grid',
  'action'=>'export',
  'dataProvider'=>$dp,
  'columns'=>array(
    array(
      'header'=>Yii::t('Statistics','Phone'),
      'name'=>'phone',
    ),
    array(
      'header'=>Yii::t('Statistics','Count'),
      'name'=>'count',
    ),
  )
));?>

注意上述第2步csv輸出函數(shù)中的header設置語句之前不要有任何的輸出,包括如下函數(shù):

print,echo,printf,trigger_error,vprintf,ob_flush,var_dump,readfile,passthru

否則內容只會在瀏覽器中輸出,但不會出現(xiàn)文件下載。

以上是“Yii框架擴展CGridView如何增加導出CSV功能”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站欄目:Yii框架擴展CGridView如何增加導出CSV功能-創(chuàng)新互聯(lián)
鏈接地址:http://muchs.cn/article34/djgjpe.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、標簽優(yōu)化服務器托管、品牌網(wǎng)站制作、小程序開發(fā)、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設