[ASK] cara generate ke excell


(khairul fahmi) #1

Om mas tante kakak bapak,

ada yang tau gak extension buat convert dari PHP jadi ke file EXCELL? :(


(Hannanhaniifa) #2

coba pake EExcelView, saya juga lagi ngerjain export to excel tp mentokk niihh error,

ada yang pernah pake ga sebelum nyah? saya binggung cara dptin dataProvider dari cgridview nya gimana,

ERROR messagenya bilang dataProvider cannot be empty,


(Coltpistolryo) #3

http://www.yiiframework.com/wiki/101/how-to-use-phpexcel-external-library-with-yii


(Hannanhaniifa) #4

maaf yh tapi saya masii ga ngertii hehehehehh,

itu kn data diset manual nah bisa contohin ga gmn controller biar dpt dataProvider dr gridview yang ada, makasii hehehehh :lol:


(Garry3peace) #5

Sesuai saran agan ‘saya pemula’, pakai Eexcelview saja.

Dijamin pembuatan excel semudah membuat cgridview. Ini contoh membuat excelnya


public function actionJadiExcel(){

                        $dataProvider = $model->search(false);

			$this->widget('ext.EExcelView', array(

				'title'=>'Daftar User',

				'dataProvider'=>$dataProvider,

				'columns'=>array(

					'number',

					'full_name',

					'address',

					'email',

				),

			)); 

}

konfigurasikan error_reporting web servernya jadi E_ERROR, karena bisa menyebabkan kegagalan jika pakai yang lain (kalo gak salah, dah lama gak pakai soalnya :P)


(Hannanhaniifa) #6

kalo controller untuk model saya seperti ini ::




        public function actionToCSVl()

        {

                $model=new BankPayment('search');

                                $model->unsetAttributes();  // clear any default values

                                if(isset($_GET['BankPayment']))

                                $model->attributes=$_GET['BankPayment'];

                

                                

                                //$this->actionExcel($model, $columns, 'MyTitle', array(), 'CSV');

                                $this->render('excel',array('model'=>$model));

        }


        public function behaviours()

                                {

                                        return array(

                                                'eexcelview'=>array(

                                                        'class'=>'ext.EExcelView.EExcelBehavior',

                                                ),

                                        );

                                }



sedangkan




$factory = new CWidgetFactory();    

        $widget = $factory->createWidget($this, 'ext.EExcelView', array(

            'dataProvider'=>$model->search(),

            'id'=>'grid',

            'grid_mode'=>'export',

            'title'=>'Title',

            'filename'=>'Bankreport',

            'stream'=>true,

            'exportType'=>'Excel2007',

            'columns'=>array(           'id',

                                        'name',

                                        'address',

                                        'email',

                                ),


 ));

 

        $widget->init();

        $widget->run();



diview yang bersangkutan,

cuma skrng saya bingung dicontrollernya untuk ngambil data klo dr dataProvider,

karena saya pake byk cgridview disatu halaman, trus saya tambahin button di tiap cgridviewnya,


echo CHtml::Button('Export', array('submit' => Yii::app()->createUrl('report/ToCSVl',array('id'=>'grid'))));

please repp, :) dan thx untuk saran dan masukkan, :lol:


(Garry3peace) #7

Agan taruh koding render EExcelView di file views yah?

Saya belum pernah coba di file views, dan saya juga tidak pernah coba pakai WidgetFactory. Jadi saya sih pakai cara paling sederhana.

Koding saya cuman seperti di bawah itu,


$this->widget('EExcelView', array(

     'dataProvider'=> $dataprovider,

     'title'=>'Title',

     'autoWidth'=>false,

      ..... other options 

));

ditaruh di dalam controller langsung…

Dan controller tidak boleh ada jeda spasi, echo atau apapun yang bisa mengeluarkan teks ke browser. Karena kita mau generate file, jadi sama sekali tidak boleh ada output echo atau sejenisnya.

Terus masalah DataProvider saya tidak paham. Agan boleh saja donk bikin banyak-banyak dataprovider, yang penting bedain saja nama variabelnya. Setau ane harusnya solve… tapi yah ini perkiraan ane saja… ehehe


(Hannanhaniifa) #8

klo saya rubah cuma controllernyah ajah jd seperti yang agan tulis diatass,

pesan error nyah

The "dataProvider" property cannot be empty.

klo liat disini pake




$factory = new CWidgetFactory();    

$widget = $factory->createWidget($this, 'EExcelView', array(



klo saya contoh sama persis

begini pesan error nyah

Fatal error: Call to a member function getData() on a non-object in C:\Program Files\xampp\htdocs\accounting\protected\extensions\EExcelView\EExcelView.php on line 137

mungkin ada masukkan gan ? maklum saya baru niihh hehehehehh :rolleyes:


(Ahmadroni) #9

mungkin perlu lihat contoh dari agan Junxiong, kayaknya yang ente tulis beda dengan contohnya gan…!


(Hannanhaniifa) #10

sudahh bisa mastaa dan suhuu sekaliiiaaannn atas bantuan dan sarannya,

kaliiaaannn baikk sekaliiii :-* :lol:


(Yosua Winata) #11

Sekedar untuk melengkapi saja yg ditulis agan Junxiong, utk lebih amannya dapat ditulis spt ini (perbedaan pada grid_view)




public function actionJadiExcel(){

                        $dataProvider = $model->search(false);

			$this->widget('ext.EExcelView', array(

				'title'=>'Daftar User',

                                

                                'grid_view' => 'export', // default bernilai 'grid'


				'dataProvider'=>$dataProvider,

				'columns'=>array(

					'number',

					'full_name',

					'address',

					'email',

				),

			)); 




(Hannanhaniifa) #12

mastaaa saya mw buat pdf juga niihh,

controller ane,





	public function actionPDF($id)

	{

	Yii::import('application.extensions.phpexcel.JPhpExcel');

	$this->renderPartial('pdf',array('model'=>$this->loadmodel($id)),false,true);

	}

	



ini pdf.php cuma ditambahin ini




                 header('Content-Type: application/pdf');

		 header('Content-Disposition: attachment;filename="surat.pdf"');



nah begini error nyah saya attach,

mohon pencerahann para mastaaa, mungkin ada yang kurang atau salah mohon masukan, saran dan bantuannn nyahhh, ;D


(Hadzard) #13

Siang agan2 sekalisn,

Terima kasih sebelumnya dari ilmu di atas

Saya newbie juga n sempet baca dari atas ternyata Eexcel view yg dsimpen di controller nya nya keren bner

udah bisa langsung keluar excel kaya grid view

tapi saya ada permasalahan ketika pake advance search (dari search form ) di CGridview nya sudah sesuai dengan yg diminta, tapi ketika di convert ke excel hasil nya malah kaya ilang filternya gan

Mohon bantuan agan2 sekalian yah gan :blink: pusiiing gan