[Yii Framework] Import Excel Data into Database SQL

Sebelumnya saya sudah membuat step-step untuk membaca excel file dengan PHP. Ya karena bisa membaca data excel dengan PHP, tentu kita bisa melakukan sedikit modifikasi untuk melakukan input data ke dalam database kita dari file Excel kita tadi.  Berikut step-step melakukan import data excel ke dalam database kita:

  • Jika anda belum pernah sama sekali mencoba membaca excel file di PHP Yii Framework, silahkan baca postingan ini terlebih dahulu.
  • Yak, silahkan download php excel reader lalu extract di “protected/extensions”
  • Misal saya memiliki tabel “A” yang memiliki 2 attribut yaitu: id, nama. Dan saya ingin memasukkan semua nilai dari Excel file pada kolom 1 untuk nilai “id”, dan kolom 2 untuk “nama”.
  • Buatlah sebuah form untuk mengupload data excel yang kita inginkan. Buat sebuah form “excel.php” yg isinya seperti berikut:
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
	'id'=>'excel-form',
	'enableAjaxValidation'=>false,
        'htmlOptions'=>array('enctype'=>'multipart/form-data'),
)); ?>
	<div class="row">
                <b>Masukkan Kata Kunci :</b>
		<?php echo $form->fileField($model,'filee',array('size'=>60,'maxlength'=>200)); ?>
		<?php echo CHtml::submitButton('Search'); ?>
	</div>
        
<?php $this->endWidget(); ?>
</div>
  • jangan lupa atur di Model anda agar file yang di upload kita batasi hanya untuk file excel dengan cara:
public $filee;
	
	public function rules()
	{
		return array(
			array('nama', 'required'),
			array('nama', 'length', 'max'=>200),
			array('filee','file','types'=>'xls'),
			array('filee','safe','on'=>'excel'),
			array('id, nama', 'safe', 'on'=>'search'),
		);
	}

Penjelasan : model di atas melakukan validasi agar file yang hanya bisa di upload hanya bertipe .xls. Sedangkan code pada baris kedua berguna untuk mengizinkan pada saat actionExcel di akses, user diperbolehkan hanya mengisi form entri “filee”. Bingung?? Saya juga bingung gimana cara jelasinnya, mungkin bisa anda pelajari disini :D

  • Pada controllernya, buatlah code seperti berikut:
	public function actionExcel()
	{
		$model=new CobaExcel;
		if(isset($_POST['CobaExcel']))
		{
			$model->attributes=$_POST['CobaExcel'];
			$itu=CUploadedFile::getInstance($model,'filee');
			$path='/../jadwal_keg.xls';
			$itu->saveAs($path);
			$data = new Spreadsheet_Excel_Reader($path);
			$id=array();
			$nama=array();
			for ($j = 2; $j <= $data->sheets[0]['numRows']; $j++) 
			{
				$id[$j]=$data->sheets[0]['cells'][$j][1];
				$nama[$j]=$data->sheets[0]['cells'][$j][2];
			}
		
			for($i=0;$i<count($id);$i++)
			{
				$model=new CobaExcel;

				$model->id=$id[$i];
				$model->nama=$keg[$i];
				$model->save();
                       }
                        unlink($path);
			$this->redirect(array('index'));
		}
		$this->render('excel',array('model'=>$model));
	}
Penjelasan : pada code di atas kita akan menangkap hasil inputan dari form excel.php. Setelah itu kita ambil data tersebut, lalu kita covert file excel yang sudah kita pilih dan kita tangkap nilai-nilai ny untuk kemudian kita masukkan ke dalam database kita..
Selesai… Selamat mencoba…
Semoga membantu…😀

72 Responses to [Yii Framework] Import Excel Data into Database SQL

  1. loper_kesasar says:

    kok ane coba The filename Formulir_LKSA.xls is not readable terus ya?

  2. sabitzhabit says:

    bisa jelasin lebih detail gan gmana pesen error ny? ato sekalian coding ny agan di controller ny?

  3. loper_kesasar says:

    controller nya kayak gini
    public function actionUpload() {
    $model = new DataLksa;
    if (isset($_POST[‘DataLksa’])) {

    $model->attributes = $_POST[‘DataLksa’];
    $itu = CUploadedFile::getInstance($model, ‘filee’);
    $path = ‘f:/formulir_lksa.xls’;
    $itu->saveAs($path);
    $data = new Spreadsheet_Excel_Reader($path);
    //$id = array();
    //$nama = array();

    $kode_lksa = $data->sheets[0][‘cells’][5][4];
    $nama_lksa = $data->sheets[0][‘cells’][6][4];
    $alamat = $data->sheets[0][‘cells’][7][4];
    $kabupaten_id = $data->sheets[0][‘cells’][8][4];
    $provinsi_id = $data->sheets[0][‘cells’][9][4];
    $email = $data->sheets[0][‘cells’][10][4];
    $pimpinan = $data->sheets[0][‘cells’][11][4];
    $status_kepemilikan = $data->sheets[0][‘cells’][12][4];
    $contact_person = $data->sheets[0][‘cells’][13][4];
    $no_hp = $data->sheets[0][‘cells’][14][4];
    $jumlah_anak = $data->sheets[0][‘cells’][15][4];
    $akta_notaris = $data->sheets[0][‘cells’][16][4];
    $npwp = $data->sheets[0][‘cells’][17][4];
    $sip = $data->sheets[0][‘cells’][18][4];
    $bank = $data->sheets[0][‘cells’][19][4];
    $nama_dalam_rekening = $data->sheets[0][‘cells’][20][4];
    $no_rekening = $data->sheets[0][‘cells’][21][4];

    for ($i = 0; $i id = $id[$i];
    $model->nama = $keg[$i];
    $model->save();
    }
    unlink($path);
    $this->redirect(array(‘index’));
    }
    $this->render(‘upload’, array(‘model’ => $model));
    }

    kalau saya ikutin kodingan agan $path = ‘/../formulir_lksa.xls’; muncul errornya move_uploaded_file(/../formulir_lksa.xls) [function.move-uploaded-file]: failed to open stream: Permission denied
    kalau saya tembak langsung $path = ‘f:/formulir_lksa.xls’; muncul error include(Spreadsheet_Excel_Reader.php) [function.include]: failed to open stream: No such file or directory

    nah akhirnya saya rename php_reader2.php ke bawah components terus rename Spreadsheet_Excel_Reader.php
    kalau gak ditembak langsung path nya erornya sama
    klo ditembak langsung muncul file not readable,,,tapi pas dibuka filenya udah kayak format csv gan

  4. sabitzhabit says:

    coba ilangin coding yg ini gan : “unlink($path);” nah, trus agan liat di di path yg agan upload itu uda ada ga file yg agan upload tadi? takut ny kalo emang file ny belum masuk gan..

  5. loper_kesasar says:

    heheh udah bisa gan,,tpi belum masuk ke databasenya,,,
    for($i=0;$iid=$id[$i];
    $model->nama=$keg[$i];
    $model->save();
    }
    ini untuk apa ya gan?
    terus kalo form ane yang ganti data satu kolom beda baris bener kan ya di controllernya gtu?maaf ya gan bnyak nanya,,hehehe ane request boleh g gan tutorial many_many😀 input data tapi many_many

  6. sabitzhabit says:

    oh, itu coding utk ng save data yang kita tangkep dari excel gan. Tapi kayak ny agan salah cdoing ny gan. Harus ny dia itu di setiap foreach ny agan definisiin dlu model nya. Jadi di tiap foreach itu dia akan nyimpen 1 row table gan..

  7. loper_kesasar says:

    wah mau ngucapin terimaksih bnyak gan,,akhirnya bisa,,,trakhir tentang ini kan ane punya 2 cara input pertama lewat form ke dua upload ini,,,nah yg upload ini gak masalah,,sekarang kalau ana mau masukin lewat form dia minta si filee itu,,,nah itu gimana ya gan cara ngatasinnya?

  8. sabitzhabit says:

    kalo kyak gitu kasus nya, agan buat 2 action gan. Action input biasa, sama action input form. Action excel yg kayak di atas, sedangkan action input biasa agan buat aja dari CRUD generator yg ada dari Yii gan,.. biar lebih mudah…

  9. loper_kesasar says:

    udah,,,yg upload pake actionUpload,,yg crud pake actionCreate

  10. bozok says:

    mas tolong dibantu dong….aq coba yang ada tanggalnya, formatnya jadi beda…gimana supaya format yg dibaca yii itu 0000-00-00

  11. sabitzhabit says:

    setau saya itu di database nya aja di cocokin format date nya mas..

  12. ryan says:

    $path tu maksudnya apan ya gan?? apa nama file xlsnya? trims😀

  13. path file excelnya gan..

  14. fazrin says:

    wah makasih banget nih tutorialnya mas..
    sangat ngebantu saya..

    sekalian mo nanya mas..
    saya sudah berhasil untuk import ke 1 tabel..
    kira-kira mungkin ngga dalam 1 kali submit bisa import langsung ke 2 table..
    kalo bisa kira-kira logika-nya seperti apa ?

    Makasih sebelumnya..

  15. itu bisa2 aja mas.. yang penting di definisikan ke 2 buah tabel(model) tersebut di fungsi nya..
    terus tinggal di lempar nilai dari excel ke dalam 2 buah tabel tsb..

  16. Benh gut says:

    Thanks for the post, that is exactly what i am looking for.
    Just a small question: Why do we need the Path value in the actionExcel function if we had import the file in Form view. Are there any way that the path value can be set automatically from the upload form

  17. i have try to import file excel from the file that we choose, but not work although i do everything to do that..
    so i upload file first to our server and then import that, after that, i remove the file that upload before…

    /*Sory my English not good..

  18. FROZ 23 says:

    Maaf gan ! ini saya coba kq g berhasil ya ? bisa minta tlng koreksinya, berikut controller saya.

    public function actionExcel()
    {
    $model=new EmployeeCheckClock;
    if(isset($_POST[‘EmployeeCheckClock’]))
    {
    $model->attributes=$_POST[‘EmployeeCheckClock’];
    $itu=CUploadedFile::getInstance($model,’filee’);
    $path=’/../jadwal_keg.xls’;
    $itu->saveAs($path);
    $data = new Spreadsheet_Excel_Reader($path);
    $employee_check_id=array();
    for ($j = 2; $j sheets[0][‘numRows’]; $j++)
    {
    $employee_check_id[$j]=$data->sheets[0][‘cells’][$j][1];
    }

    for($i=0;$iemployee_check_id=$employee_check_id[$i];
    $model->save();
    }
    unlink($path);
    $this->redirect(array(‘index’));
    }
    $this->render(‘excel’,array(‘model’=>$model));
    }

  19. ada pesen error ny gan?

  20. FROZ 23 says:

    G ada pesen errornya cman g masuk aja.

  21. coba unlink nya dihapus gan. Ada ga file excel yang agan upload?

  22. Cethol says:

    gan. import extensionnya dimana dan caranya gimana gan?? ane ada error ini kayaknya karena extensionnya belum diimport. mohon bantu gan…:)

  23. di atas saya udah kasih penjelasan kalo agan buka dlu tutor sebelumnya yang udah bahas ini gan.. disana ada import nya..

  24. Damar N says:

    gan. saya sudah coba dan sudah bisa, tapi kenapa yang masuk ke database selalu kelebihan 2 record ya gan, misal record ada 2 yang masuk 4 record ,tapi yang 2 kosong gan.!

    kira-kira kenapa ya gan?

  25. saya juga kurang tau sih gan masalah nya.. tapi bukannya ga masalah ya kalo di excel nya itu kelebihin baris?

  26. Maya says:

    Mas, saya mau tanya. Saya mau baca file di excel dan ngikutin tutorial ini. Tapi setiap pas mau baca selalu ada error

    include(/var/www/html/pintas/protected/extensions/excel/Spreadsheet_Excel_Reader.php): failed to open stream: No such file or directory (/var/www/html/framework/YiiBase.php:397)

    kebetulan nama filenya saya ubah jadi Spreadsheet_Excel_Reader.php dan saya letakkan di dalam foder ext.

    saya sudah coba beberapa cara
    1. pakai cara di atas
    disini sebenarnya errornya udah di

    $itu->saveAs($path);

    tapi karena proses savenya sudah dilakukan (awalnya modulnya dikususkan untuk membaca file txt tapi sekarang diharuskan juga bisa baca excel) jadinya path dari file yg disimpan oleh proses sebelumnya yg saya pakai

    jadinya saya langsung

    $data = new Spreadsheet_Excel_Reader($fileDir);

    tapi tetap error

    2. sebelum

    $data = new Spreadsheet_Excel_Reader($fileDir);

    saya tambahkan

    Yii::import(‘ext.excel.Spreadsheet_Excel_Reader’);

    tapi tetep aja errornya begitu

    kira2 kenapa ya? hatur nuhun

  27. kupruz says:

    bang, punya saya yang bagian ini $nama[$j]=$data->sheets[0][‘cells’][$j][1];
    [$j] yang belakang kok gabisa kira2 kenapa ya? kalau diisi nilai biasa, misal 2 gitu bisa,tp kan sebaris doang yg kebaca .

  28. kupruz says:

    $j nya harus dimulai dari 0 bang, terus kalau $j yang belakang misal diganti $k dan dibuat nested for juga masih gabisa, tapi kalau langsung $k=2 gitu bisa..

  29. cara paling mudah mending di print nilai nya di setiap perulangan gan, biar ke detect gimana cara dia kerjanya.

  30. codehills says:

    gan minta source code lengkap yg excel donk?

  31. masyar says:

    Property “Excel.filee” is not defined.
    artinya apa ya gan?

  32. model “excel” nya uda ada gan? atau field “filee” di model excel nya?

  33. redy says:

    PHP warning

    YiiBase::include(CobaExcel.php) [function.YiiBase-include]: failed to open stream: No such file or directory

    C:\xampp\htdocs\YiiRoot\framework\YiiBase.php(421)

    409 {
    410 include($classFile);
    411 if(YII_DEBUG && basename(realpath($classFile))!==$className.’.php’)
    412 throw new CException(Yii::t(‘yii’,’Class name “{class}” does not match class file “{file}”.’, array(
    413 ‘{class}’=>$className,
    414 ‘{file}’=>$classFile,
    415 )));
    416 break;
    417 }
    418 }
    419 }
    420 else
    421 include($className.’.php’);
    422 }
    423 else // class name with namespace in PHP 5.3
    424 {
    425 $namespace=str_replace(‘\\’,’.’,ltrim($className,’\\’));
    426 if(($path=self::getPathOfAlias($namespace))!==false)
    427 include($path.’.php’);
    428 else
    429 return false;
    430 }
    …..

    kenapa itu kira-kira gan?

  34. vie says:

    yang udah jalan tolong share dong coding lengkapnya, saya error terus nih
    error: include(Spreadsheet_Excel_Reader.php) [function.include]: failed to open stream: No such file or directory

  35. file tersebut belum ada itu gan.. atau salah path nya..

  36. vie says:

    sekarang error tsb udah solved mas, tapi belum mau nyimpen ke database?

  37. vie says:

    masalahnya gak mau save ke databasenya, gak ada error terlihat,
    Controller saya seperti ini:

    $model=new TOutsource;

    if(isset($_POST[‘TOutsource’]))
    {
    $model->attributes=$_POST[‘TOutsource’];
    $itu=CUploadedFile::getInstance($model,’filee’);
    $path=Yii::app()->basePath . ‘\\..\\upload\\document\\’.’FILE_OUT.xls’;

    $itu->saveAs($path);

    Yii::import(‘ext.phpexcelreader.JPhpExcelReader’);
    $data=new JPhpExcelReader($path);

    $ID=array();
    $NAMA=array();
    $UNIT_KERJA=array();
    $POSISI=array();
    $KOTA=array();
    $TGL_MULAI=array();
    $TGL_AKHIR=array();
    $VENDOR=array();
    $STATUS_KONTRAK=array();
    $GAJI=array();
    $KETERANGAN=array();
    for ($j = 11 ; $j sheets[0][‘numRows’]; $j++)
    {
    $ID[$j]=$data->sheets[0][‘cells’][$j][1];
    $NAMA[$j]=$data->sheets[0][‘cells’][$j][2];
    $UNIT_KERJA[$j]=$data->sheets[0][‘cells’][$j][3];
    $POSISI[$j]=$data->sheets[0][‘cells’][$j][4];
    $KOTA[$j]=$data->sheets[0][‘cells’][$j][5];
    $TGL_MULAI[$j]=$data->sheets[0][‘cells’][$j][6];
    $TGL_AKHIR[$j]=$data->sheets[0][‘cells’][$j][7];
    $VENDOR[$j]=$data->sheets[0][‘cells’][$j][8];
    $STATUS_KONTRAK[$j]=$data->sheets[0][‘cells’][$j][9];
    $GAJI[$j]=$data->sheets[0][‘cells’][$j][10];
    $KETERANGAN[$j]=$data->sheets[0][‘cells’][$j][11];
    }

    for($i=0;$iID=$ID[$i];
    $model->NAMA=$NAMA[$i];
    $model->UNIT_KERJA=$UNIT_KERJA[$i];
    $model->POSISI=$POSISI[$i];
    $model->KOTA=$KOTA[$i];
    $model->TGL_MULAI=$TGL_MULAI[$i];
    $model->TGL_AKHIR=$TGL_AKHIR[$i];
    $model->VENDOR=$VENDOR[$i];
    $model->STATUS_KONTRAK=$STATUS_KONTRAK[$i];
    $model->GAJI=$GAJI[$i];
    $model->KETERANGAN=$KETERANGAN[$i];
    $model->save();
    }

    $this->redirect(array(‘index’));
    }

    Ada solusi?

  38. vie says:

    kalo errornya Undefined offset: 0 itu solusi gimana ya?

  39. tumbas says:

    mas, kalo error kaya gini kenapa ya?
    ” include(Spreadsheet_Excel_Reader.php): failed to open stream: No such file or directory “

  40. terima kasih tutorialnya bro sngat brguna skali,
    cuma setelah sy coba sepertinya ada baris yang perlu dirubah
    for ($j = 2; $j sheets[0][‘numRows’]; $j++)
    {
    $id[$j]=$data->sheets[0][‘cells’][$j][1];
    $nama[$j]=$data->sheets[0][‘cells’][$j][2];
    }

    for($i=0;$iid=$id[$i];
    $model->nama=$keg[$i];
    $model->save();
    }

    itu array id dan nama pada awalnya diisi dengan $id[2] -> namun saat pemanggilan $id[$i] dimana i dimulai dari 0, ini yang bisa membuat munculnya error “Undefined offset: 0”.

    klo saya si nambah 1 variabel lagi buat counter, misal x. Jadi seperti ini:

    $x=0;
    for ($j = 2; $j sheets[0][‘numRows’]; $j++)
    {
    $id[$j]=$data->sheets[0][‘cells’][$j][1];
    $nama[$j]=$data->sheets[0][‘cells’][$j][2];
    $x++;
    }

    CMIIW🙂

  41. terima kasih tutorialnya bro sngat brguna skali,
    cuma setelah sy coba sepertinya ada baris yang perlu dirubah/ditambahkan
    for ($j = 2; $j sheets[0][‘numRows’]; $j++)
    {
    $id[$j]=$data->sheets[0][‘cells’][$j][1];
    $nama[$j]=$data->sheets[0][‘cells’][$j][2];
    }

    for($i=0;$iid=$id[$i];
    $model->nama=$keg[$i];
    $model->save();
    }

    itu array id dan nama pada awalnya diisi dengan $id[2] -> namun saat pemanggilan $id[$i] dimana i dimulai dari 0, ini yang bisa membuat munculnya error “Undefined offset: 0”.

    klo saya si nambah 1 variabel lagi buat counter, misal x. Jadi seperti ini:

    $x=0;
    for ($j = 2; $j sheets[0][‘numRows’]; $j++)
    {
    $id[$x]=$data->sheets[0][‘cells’][$j][1];
    $nama[$x]=$data->sheets[0][‘cells’][$j][2];
    $x++;
    }
    CMIIW🙂

    *) di komen saya sebelumnya ada yang kurang

  42. Agya says:

    Maaf agan, mau tanya..
    saya sangat baru sekali belajar YII, dan dsini sy mendapati kesulitan,
    saat saya sudah melakukan hal diatas lalu melakukan upload, file. lalu saya klik tombol search, hasilnya No File Selected. kira kira salahnya dimana ya..
    di controllers nya kah atau di models nya?

    saya coba dari pembuatan tabel pertama membuat tabel A yang column nya ada id dan nama.
    lalu saya buat model dengan generate gii, dan saya buat crud nya menggunakan gii jg.

    lalu pembuatan create dr hasil crud generate nya saya ganti menjadi upload file excel ini.
    kira kira gimana ya gan, bingung bgt untuk skripsi sy nih.. mohon bantuannya.

  43. Agya says:

    ini yg sy simpan di views,

    breadcrumbs=array(
    ‘As’=>array(‘index’),
    ‘Create’,
    );

    $this->menu=array(
    array(‘label’=>’List A’, ‘url’=>array(‘index’)),
    array(‘label’=>’Manage A’, ‘url’=>array(‘admin’)),
    );
    ?>

    Create A

    beginWidget(‘CActiveForm’, array(
    ‘id’=>’excel-form’,
    ‘enableAjaxValidation’=>false,
    ‘htmlOptions’=>array(‘enctype’=>’multipart/form-data’),
    )); ?>

    Masukkan Kata Kunci :
    fileField($model,’filee’,array(‘size’=>60,’maxlength’=>200)); ?>

    endWidget(); ?>

  44. Agya says:

    ini model nya,

    true),
    array(‘id, nama’, ‘safe’, ‘on’=>’search’),
    array(‘nama’, ‘required’),
    array(‘nama’, ‘length’, ‘max’=>200),
    array(‘filee’,’file’,’types’=>’xls’),
    array(‘filee’,’safe’,’on’=>’excel’),
    array(‘id, nama’, ‘safe’, ‘on’=>’search’),
    );
    }

    public function relations()
    {
    // NOTE: you may need to adjust the relation name and the related
    // class name for the relations automatically generated below.
    return array(
    );
    }

    public function attributeLabels()
    {
    return array(
    ‘id’ => ‘ID’,
    ‘nama’ => ‘Nama’,
    );
    }

    public function search()
    {
    // Warning: Please modify the following code to remove attributes that
    // should not be searched.

    $criteria=new CDbCriteria;

    $criteria->compare(‘id’,$this->id);
    $criteria->compare(‘nama’,$this->nama);

    return new CActiveDataProvider($this, array(
    ‘criteria’=>$criteria,
    ));
    }
    }

  45. Agya says:

    dan untuk controllersnya saya tambahkan di Acontrollers saya,

    public function actionExcel()

    yg agan ketik diatas,
    apa perlu dirubah path nya juga?

    intinya, saat saya upload, dan search, dia menghasilkan no file selected..
    maaf ya gan panjang bgt, maaf kl pertanyaan nya cupu.. baru belajar nih gan.. hehe

    • waduh, sory lagi ternyata di model juga udah.
      Hmmm.. kalo dari pesen error itu dia belum masuk ke proses mau upload.
      Kayak nya di controller nya itu ga ketangkep file ketika di submit gan.

  46. iya gan sepertinya di controllersnya yang salah.. soalnya ga ketangkep, gatau errornya dimana.

    public function actionExcel()
    {
    $model=new CobaExcel;
    if(isset($_POST[‘CobaExcel’]))
    {

    $model->attributes=$_POST[‘CobaExcel’];
    $itu=CUploadedFile::getInstance($model,’filee’);
    $path=’/../jadwal_keg.xls’;
    $itu->saveAs($path);
    $data = new Spreadsheet_Excel_Reader($path);
    $id=array();
    $nama=array();
    for ($j = 2; $j sheets[0][‘numRows’]; $j++)
    {
    $id[$j]=$data->sheets[0][‘cells’][$j][1];
    $nama[$j]=$data->sheets[0][‘cells’][$j][2];
    }

    for($i=0;$iid=$id[$i];
    $model->nama=$keg[$i];
    $model->save();
    }
    unlink($path);
    $this->redirect(array(‘index’));
    }
    $this->render(‘excel’,array(‘model’=>$model));
    }

    apa path nya harus dirubah dr tutorial nya agan diatas?
    dan bentuk file excel nya yang saya upload itu isinya,

    mulai dari baris ke-2 ya gan? sampai kolom berapa?

  47. Agya says:

    ah saya tau gan dimana salah, ternyata waktu saya tulis new [nama mode] di controller itu harus sama besar kecilnya ya gan? baru tau.
    pantes ga ketangkep sama controller ternyata case sensitive ya. makasih gan infonya. makasih banyakk

  48. Gan, gimana caranya import data,tapi sebelum disimpan tampil di web dulu?

  49. uvdona says:

    Maaf gan mohon pencerahannya, sudah dibuat tapi kok gak berhasil simpan di databasenya, setelah saya hilangkan unlink nya memang muncul excel yg akan diimport tadi di folder C:

    public function actionExcel()

    {
    $model=new CobaExcel;
    if(isset($_POST[‘CobaExcel’]))
    {
    $model->attributes=$_POST[‘CobaExcel’];
    $itu=CUploadedFile::getInstance($model,’filee’);
    $path=’/../CobaExcel.xls’;
    $itu->saveAs($path);
    Yii::import(‘ext.phpexcelreader.JPhpExcelReader’);
    $data=new JPhpExcelReader($path);
    $itu->saveAs($path);
    $data = new Spreadsheet_Excel_Reader($path);
    $id=array();
    $nama=array();
    for ($j = 2; $j sheets[0][‘numRows’]; $j++)
    {
    $id[$j]=$data->sheets[0][‘cells’][$j][1];
    $nama[$j]=$data->sheets[0][‘cells’][$j][2];
    }

    for($i=0;$iid=$id[$i];
    $model->nama=$keg[$i];
    $model->save();
    }

    $this->redirect(array(‘index’));
    }
    $this->render(‘excel’,array(‘model’=>$model));
    }

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: