Berikut adalah contoh source code untuk mengimport mahasiswa dari file excel
<?php
include "./bootstrap.php";
use \UniversitySDK\Entities\SPMBStudent;
class ImportStudentFromExcel{
function localToDbDate($var){
$date = str_replace('/', '-', $var);
return date('Y-m-d', strtotime($date));
}
function logStatus($t){
$f = fopen(__DIR__.'/InsertStudentFromExcel-live.log','a+');
if($f){
$now = new \DateTime();
$now->setTimezone(new \DateTimeZone('Asia/Jakarta'));
$time = $now->format('Y-m-d H:i:s');
$text = $time.': '.$t."\n";
echo $text;
fwrite($f,$text);
fclose($f);
}
}
private function findNationality($nationalityText){
$nationalityText = strtolower(trim($nationalityText));
foreach($this->nationalities as $rl){
if(strtolower($rl->name) == $nationalityText){
return $rl;
}
}
return NULL;
}
function findReligion($religionText){
$religionText = strtolower($religionText);
foreach($this->religions as $rl){
if(strtolower($rl->name) == $religionText){
return $rl;
}
}
return NULL;
}
public function getDataSources(){
return [
[
'file'=>'/1. Udah registrasi dari 295- S2 MPI-edit1.csv',
'progID'=>1039
],
[
'file'=>'/2. Udah registrasi dari 295- S2 HES-edit1.csv',
'progID'=>1036
],
[
'file'=>'/3. Udah registrasi dari 295- S2 IAT-edit1.csv',
'progID'=>1038
],
[
'file'=>'/4. Udah registrasi dari 295- S2 PBA-edit1.csv',
'progID'=>1041
],
[
'file'=>'/5. Udah registrasi dari 295- S2 PGMI-edit1.csv',
'progID'=>1042
],
[
'file'=>'/6. Udah registrasi dari 295- S2 PAI-edit1.csv',
'progID'=>1040
],
[
'file'=>'/7. Udah registrasi dari 295- S2 AFI-edit1.csv',
'progID'=>1034
],
[
'file'=>'/8. Udah registrasi dari 295- S2 ES-edit1.csv',
'progID'=>1035
],
[
'file'=>'/9. Udah registrasi dari 295- S2 HKI-edit1.csv',
'progID'=>1037
],
[
'file'=>'/10. Udah registrasi dari 295- S2 TBI-edit1.csv',
'progID'=>1043
],
[
'file'=>'/home/aldo/Downloads/Yang registrasi untuk siakad/S3 edit 1/1. Yang registrasi dari 295- S3 MPI Edit1.csv',
'progID'=>1044
],
[
'file'=>'/home/aldo/Downloads/Yang registrasi untuk siakad/S3 edit 1/2. Yang registrasi dari 295- S3 SI Edit1.csv',
'progID'=>1045
]
];
}
public function run(){
$this->admin = new \UniversitySDK\Admin;
//$this->admin->setHost('http://university');
if(!$ret){
echo 'failed to login';
return FALSE;
}
$this->religions = $this->admin->getAllReligions();
//get all nationalities
$this->nationalities = $this->admin->getAllNationalities();
$srcs = $this->getDataSources();
foreach($srcs as $src){
$programID = $src['progID'];//
$csvPath = $src['file'];
$row = 1;
if (($handle = fopen($csvPath, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if($row==1){
$row++;
continue;
}
$std = new SPMBStudent();
$std->UniversityID = 1001;
$std->unitid = $programID;
$std->ProgramID = $programID;
//$std->fakultas = 1001;
//$std->kode_prodi_sia = ;
$std->no_ident = trim($data[5]);
$std->nim = trim($data[3]);
$std->nama = trim($data[2]);
$std->email = trim($data[1]);
if(empty($std->email)){
$std->email = $std->nim .'@universitas.ac.id';
}
$std->tmpt_lahir = strtoupper(trim($data[6]));
$std->tgl_lahir = trim($this->localToDbDate($data[7]));
$sex = 'P';
if(trim($data[4])=='Laki - laki'){
$sex = 'L';
}
$std->sex = $sex;
$std->blood = '';
$now = new \DateTime();
$now->setTimezone(new \DateTimeZone('Asia/Jakarta'));
$time = $now->format('Y-m-d H:i:s');
$std->reg_date = $time;
//all using area id
//Kelurahan/Desa Tempat Tinggal 10
$std->dsn = trim($data[10]);
//Kecamatan Tempat Tinggal 11
$kec = trim($data[11]);
$kec = str_replace(['kec'],'',strtolower($kec));
if($kec=='campurdarat'){
$kec = 'campur darat';
}
if($kec=='pucanglaban'){
$kec = 'pucang laban';
}
$subdistrict = $this->admin->findSubDistrict($kec);
if($subdistrict==NULL){
$this->logStatus('Can not find kec:'.$kec);
}else{
$std->kec = $subdistrict->ID;
}
//Kabupaten Tempat Tinggal 12
$kab = str_replace(['kabupaten','kota'],'',strtolower(trim($data[12])));
//exceptions
if($kab=='kediri'){
$kab = 'Kota Kediri';
}
$city = $this->admin->findCity($kab);
if($city==NULL){
$this->logStatus('Can not find kab:'.$kab);
}else{
$std->kab = $city->ID;
}
//Provinsi Tempat Tinggal 13
$prop = trim($data[13]);
if($prop=='JAWATIMUR'){
$prop = 'JAWA TIMUR';
}
$prov = $this->admin->findProvince($prop);
if($prov==NULL){
$this->logStatus('Can not find prop:'.$prop);
}else{
$std->prov = $prov->ID;
}
$std->kpos = '-';
$std->no_hp = '-';
$neg = trim($data[9]);
$neg = str_replace('WNI','Indonesia',$neg);
$nationality = $this->findNationality($neg);
if($nationality==NULL){
$this->logStatus('negara tidak ditemukan: '.$neg);
$std->negara = 'ID';
}else{
//var_dump($nationality);
$std->negara = $nationality->code;
}
$ag = trim($data[8]);
$rel = $this->findReligion($ag);
if($rel==NULL){
$this->logStatus('agama tidak ditemukan: '.$ag);
$std->id_agama = 1;
}else{
//var_dump($rel)
$std->id_agama = $rel->ID;
}
$std->ayah = trim($data[15]);
$std->status = 1;
$std->tahun = 2019;
$std->jalur = 5;//spmb mandiri
$std->ibu = trim($data[14]);
$std->id_pendaftaran = '';
$std->alamat = '';
$std->nik_ayah = '';
$std->nik_ibu = '';
$std->tgl_ayah = '';
$std->tgl_ibu = '';
$std->pekerjaan = '';
$std->alamatortu = '';
$std->kotaortu = '';//code from feeder
$std->propinsiortu = '';
$std->kodeposortu = '';
$std->wali = '';
$std->alamatwali = '';
$std->alamatwali = '';
$std->hp_ortu = '';
$std->pend_ibu = '';
$std->pend_bpk = '';
$std->kerja_ibu = '';
$std->kerja_bpk = '';
$std->gaji_ibu ='';
$std->gaji_bpk = '';
$std->gaji_wali = '';
$std->pend_wali = '';
$std->kerja_wali = '';
$this->logStatus('registering: '.$std->nim);
$ret2 = $this->admin->registerSPMBStudent($std);
if(isset($ret2->error)){
$this->logStatus('Error Student: '.$std->nim.' '.$std->nama.' '.$ret2->error->message);
}
if(isset($ret2->status)){
if($ret2->status==0){
$this->logStatus('Error Student: '.$std->nim.' '.$std->nama.' '.$ret2->message);
}else{
$this->logStatus('done: '.$ret2->status);
//return TRUE;
}
}
$row++;
}
fclose($handle);
}
}
}
}
$r = new ImportStudentFromExcel();
$r->run();
<?php
include "./bootstrap.php";
use \UniversitySDK\Entities\SPMBStudent;
class ImportStudentFromExcel{
function localToDbDate($var){
$date = str_replace('/', '-', $var);
return date('Y-m-d', strtotime($date));
}
function logStatus($t){
$f = fopen(__DIR__.'/InsertStudentFromExcel-live.log','a+');
if($f){
$now = new \DateTime();
$now->setTimezone(new \DateTimeZone('Asia/Jakarta'));
$time = $now->format('Y-m-d H:i:s');
$text = $time.': '.$t."\n";
echo $text;
fwrite($f,$text);
fclose($f);
}
}
private function findNationality($nationalityText){
$nationalityText = strtolower(trim($nationalityText));
foreach($this->nationalities as $rl){
if(strtolower($rl->name) == $nationalityText){
return $rl;
}
}
return NULL;
}
function findReligion($religionText){
$religionText = strtolower($religionText);
foreach($this->religions as $rl){
if(strtolower($rl->name) == $religionText){
return $rl;
}
}
return NULL;
}
public function getDataSources(){
return [
[
'file'=>'/1. Udah registrasi dari 295- S2 MPI-edit1.csv',
'progID'=>1039
],
[
'file'=>'/2. Udah registrasi dari 295- S2 HES-edit1.csv',
'progID'=>1036
],
[
'file'=>'/3. Udah registrasi dari 295- S2 IAT-edit1.csv',
'progID'=>1038
],
[
'file'=>'/4. Udah registrasi dari 295- S2 PBA-edit1.csv',
'progID'=>1041
],
[
'file'=>'/5. Udah registrasi dari 295- S2 PGMI-edit1.csv',
'progID'=>1042
],
[
'file'=>'/6. Udah registrasi dari 295- S2 PAI-edit1.csv',
'progID'=>1040
],
[
'file'=>'/7. Udah registrasi dari 295- S2 AFI-edit1.csv',
'progID'=>1034
],
[
'file'=>'/8. Udah registrasi dari 295- S2 ES-edit1.csv',
'progID'=>1035
],
[
'file'=>'/9. Udah registrasi dari 295- S2 HKI-edit1.csv',
'progID'=>1037
],
[
'file'=>'/10. Udah registrasi dari 295- S2 TBI-edit1.csv',
'progID'=>1043
],
[
'file'=>'/home/aldo/Downloads/Yang registrasi untuk siakad/S3 edit 1/1. Yang registrasi dari 295- S3 MPI Edit1.csv',
'progID'=>1044
],
[
'file'=>'/home/aldo/Downloads/Yang registrasi untuk siakad/S3 edit 1/2. Yang registrasi dari 295- S3 SI Edit1.csv',
'progID'=>1045
]
];
}
public function run(){
$this->admin = new \UniversitySDK\Admin;
//$this->admin->setHost('http://university');
$ret = $this->admin->login(1001,'[email protected]', 'J9iFt>L,(n7d@4d');
if(!$ret){
echo 'failed to login';
return FALSE;
}
$this->religions = $this->admin->getAllReligions();
//get all nationalities
$this->nationalities = $this->admin->getAllNationalities();
$srcs = $this->getDataSources();
foreach($srcs as $src){
$programID = $src['progID'];//
$csvPath = $src['file'];
$row = 1;
if (($handle = fopen($csvPath, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if($row==1){
$row++;
continue;
}
$std = new SPMBStudent();
$std->UniversityID = 1001;
$std->unitid = $programID;
$std->ProgramID = $programID;
//$std->fakultas = 1001;
//$std->kode_prodi_sia = ;
$std->no_ident = trim($data[5]);
$std->nim = trim($data[3]);
$std->nama = trim($data[2]);
$std->email = trim($data[1]);
if(empty($std->email)){
$std->email = $std->nim .'@universitas.ac.id';
}
$std->tmpt_lahir = strtoupper(trim($data[6]));
$std->tgl_lahir = trim($this->localToDbDate($data[7]));
$sex = 'P';
if(trim($data[4])=='Laki - laki'){
$sex = 'L';
}
$std->sex = $sex;
$std->blood = '';
$now = new \DateTime();
$now->setTimezone(new \DateTimeZone('Asia/Jakarta'));
$time = $now->format('Y-m-d H:i:s');
$std->reg_date = $time;
//all using area id
//Kelurahan/Desa Tempat Tinggal 10
$std->dsn = trim($data[10]);
//Kecamatan Tempat Tinggal 11
$kec = trim($data[11]);
$kec = str_replace(['kec'],'',strtolower($kec));
if($kec=='campurdarat'){
$kec = 'campur darat';
}
if($kec=='pucanglaban'){
$kec = 'pucang laban';
}
$subdistrict = $this->admin->findSubDistrict($kec);
if($subdistrict==NULL){
$this->logStatus('Can not find kec:'.$kec);
}else{
$std->kec = $subdistrict->ID;
}
//Kabupaten Tempat Tinggal 12
$kab = str_replace(['kabupaten','kota'],'',strtolower(trim($data[12])));
//exceptions
if($kab=='kediri'){
$kab = 'Kota Kediri';
}
$city = $this->admin->findCity($kab);
if($city==NULL){
$this->logStatus('Can not find kab:'.$kab);
}else{
$std->kab = $city->ID;
}
//Provinsi Tempat Tinggal 13
$prop = trim($data[13]);
if($prop=='JAWATIMUR'){
$prop = 'JAWA TIMUR';
}
$prov = $this->admin->findProvince($prop);
if($prov==NULL){
$this->logStatus('Can not find prop:'.$prop);
}else{
$std->prov = $prov->ID;
}
$std->kpos = '-';
$std->no_hp = '-';
$neg = trim($data[9]);
$neg = str_replace('WNI','Indonesia',$neg);
$nationality = $this->findNationality($neg);
if($nationality==NULL){
$this->logStatus('negara tidak ditemukan: '.$neg);
$std->negara = 'ID';
}else{
//var_dump($nationality);
$std->negara = $nationality->code;
}
$ag = trim($data[8]);
$rel = $this->findReligion($ag);
if($rel==NULL){
$this->logStatus('agama tidak ditemukan: '.$ag);
$std->id_agama = 1;
}else{
//var_dump($rel)
$std->id_agama = $rel->ID;
}
$std->ayah = trim($data[15]);
$std->status = 1;
$std->tahun = 2019;
$std->jalur = 5;//spmb mandiri
$std->ibu = trim($data[14]);
$std->id_pendaftaran = '';
$std->alamat = '';
$std->nik_ayah = '';
$std->nik_ibu = '';
$std->tgl_ayah = '';
$std->tgl_ibu = '';
$std->pekerjaan = '';
$std->alamatortu = '';
$std->kotaortu = '';//code from feeder
$std->propinsiortu = '';
$std->kodeposortu = '';
$std->wali = '';
$std->alamatwali = '';
$std->alamatwali = '';
$std->hp_ortu = '';
$std->pend_ibu = '';
$std->pend_bpk = '';
$std->kerja_ibu = '';
$std->kerja_bpk = '';
$std->gaji_ibu ='';
$std->gaji_bpk = '';
$std->gaji_wali = '';
$std->pend_wali = '';
$std->kerja_wali = '';
$this->logStatus('registering: '.$std->nim);
$ret2 = $this->admin->registerSPMBStudent($std);
if(isset($ret2->error)){
$this->logStatus('Error Student: '.$std->nim.' '.$std->nama.' '.$ret2->error->message);
}
if(isset($ret2->status)){
if($ret2->status==0){
$this->logStatus('Error Student: '.$std->nim.' '.$std->nama.' '.$ret2->message);
}else{
$this->logStatus('done: '.$ret2->status);
//return TRUE;
}
}
$row++;
}
fclose($handle);
}
}
}
}
$r = new ImportStudentFromExcel();
$r->run();
<?php include "./bootstrap.php"; use \UniversitySDK\Entities\SPMBStudent; class ImportStudentFromExcel{ function localToDbDate($var){ $date = str_replace('/', '-', $var); return date('Y-m-d', strtotime($date)); } function logStatus($t){ $f = fopen(__DIR__.'/InsertStudentFromExcel-live.log','a+'); if($f){ $now = new \DateTime(); $now->setTimezone(new \DateTimeZone('Asia/Jakarta')); $time = $now->format('Y-m-d H:i:s'); $text = $time.': '.$t."\n"; echo $text; fwrite($f,$text); fclose($f); } } private function findNationality($nationalityText){ $nationalityText = strtolower(trim($nationalityText)); foreach($this->nationalities as $rl){ if(strtolower($rl->name) == $nationalityText){ return $rl; } } return NULL; } function findReligion($religionText){ $religionText = strtolower($religionText); foreach($this->religions as $rl){ if(strtolower($rl->name) == $religionText){ return $rl; } } return NULL; } public function getDataSources(){ return [ [ 'file'=>'/1. Udah registrasi dari 295- S2 MPI-edit1.csv', 'progID'=>1039 ], [ 'file'=>'/2. Udah registrasi dari 295- S2 HES-edit1.csv', 'progID'=>1036 ], [ 'file'=>'/3. Udah registrasi dari 295- S2 IAT-edit1.csv', 'progID'=>1038 ], [ 'file'=>'/4. Udah registrasi dari 295- S2 PBA-edit1.csv', 'progID'=>1041 ], [ 'file'=>'/5. Udah registrasi dari 295- S2 PGMI-edit1.csv', 'progID'=>1042 ], [ 'file'=>'/6. Udah registrasi dari 295- S2 PAI-edit1.csv', 'progID'=>1040 ], [ 'file'=>'/7. Udah registrasi dari 295- S2 AFI-edit1.csv', 'progID'=>1034 ], [ 'file'=>'/8. Udah registrasi dari 295- S2 ES-edit1.csv', 'progID'=>1035 ], [ 'file'=>'/9. Udah registrasi dari 295- S2 HKI-edit1.csv', 'progID'=>1037 ], [ 'file'=>'/10. Udah registrasi dari 295- S2 TBI-edit1.csv', 'progID'=>1043 ], [ 'file'=>'/home/aldo/Downloads/Yang registrasi untuk siakad/S3 edit 1/1. Yang registrasi dari 295- S3 MPI Edit1.csv', 'progID'=>1044 ], [ 'file'=>'/home/aldo/Downloads/Yang registrasi untuk siakad/S3 edit 1/2. Yang registrasi dari 295- S3 SI Edit1.csv', 'progID'=>1045 ] ]; } public function run(){ $this->admin = new \UniversitySDK\Admin; //$this->admin->setHost('http://university'); $ret = $this->admin->login(1001,'[email protected]', 'J9iFt>L,(n7d@4d'); if(!$ret){ echo 'failed to login'; return FALSE; } $this->religions = $this->admin->getAllReligions(); //get all nationalities $this->nationalities = $this->admin->getAllNationalities(); $srcs = $this->getDataSources(); foreach($srcs as $src){ $programID = $src['progID'];// $csvPath = $src['file']; $row = 1; if (($handle = fopen($csvPath, "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { if($row==1){ $row++; continue; } $std = new SPMBStudent(); $std->UniversityID = 1001; $std->unitid = $programID; $std->ProgramID = $programID; //$std->fakultas = 1001; //$std->kode_prodi_sia = ; $std->no_ident = trim($data[5]); $std->nim = trim($data[3]); $std->nama = trim($data[2]); $std->email = trim($data[1]); if(empty($std->email)){ $std->email = $std->nim .'@universitas.ac.id'; } $std->tmpt_lahir = strtoupper(trim($data[6])); $std->tgl_lahir = trim($this->localToDbDate($data[7])); $sex = 'P'; if(trim($data[4])=='Laki - laki'){ $sex = 'L'; } $std->sex = $sex; $std->blood = ''; $now = new \DateTime(); $now->setTimezone(new \DateTimeZone('Asia/Jakarta')); $time = $now->format('Y-m-d H:i:s'); $std->reg_date = $time; //all using area id //Kelurahan/Desa Tempat Tinggal 10 $std->dsn = trim($data[10]); //Kecamatan Tempat Tinggal 11 $kec = trim($data[11]); $kec = str_replace(['kec'],'',strtolower($kec)); if($kec=='campurdarat'){ $kec = 'campur darat'; } if($kec=='pucanglaban'){ $kec = 'pucang laban'; } $subdistrict = $this->admin->findSubDistrict($kec); if($subdistrict==NULL){ $this->logStatus('Can not find kec:'.$kec); }else{ $std->kec = $subdistrict->ID; } //Kabupaten Tempat Tinggal 12 $kab = str_replace(['kabupaten','kota'],'',strtolower(trim($data[12]))); //exceptions if($kab=='kediri'){ $kab = 'Kota Kediri'; } $city = $this->admin->findCity($kab); if($city==NULL){ $this->logStatus('Can not find kab:'.$kab); }else{ $std->kab = $city->ID; } //Provinsi Tempat Tinggal 13 $prop = trim($data[13]); if($prop=='JAWATIMUR'){ $prop = 'JAWA TIMUR'; } $prov = $this->admin->findProvince($prop); if($prov==NULL){ $this->logStatus('Can not find prop:'.$prop); }else{ $std->prov = $prov->ID; } $std->kpos = '-'; $std->no_hp = '-'; $neg = trim($data[9]); $neg = str_replace('WNI','Indonesia',$neg); $nationality = $this->findNationality($neg); if($nationality==NULL){ $this->logStatus('negara tidak ditemukan: '.$neg); $std->negara = 'ID'; }else{ //var_dump($nationality); $std->negara = $nationality->code; } $ag = trim($data[8]); $rel = $this->findReligion($ag); if($rel==NULL){ $this->logStatus('agama tidak ditemukan: '.$ag); $std->id_agama = 1; }else{ //var_dump($rel) $std->id_agama = $rel->ID; } $std->ayah = trim($data[15]); $std->status = 1; $std->tahun = 2019; $std->jalur = 5;//spmb mandiri $std->ibu = trim($data[14]); $std->id_pendaftaran = ''; $std->alamat = ''; $std->nik_ayah = ''; $std->nik_ibu = ''; $std->tgl_ayah = ''; $std->tgl_ibu = ''; $std->pekerjaan = ''; $std->alamatortu = ''; $std->kotaortu = '';//code from feeder $std->propinsiortu = ''; $std->kodeposortu = ''; $std->wali = ''; $std->alamatwali = ''; $std->alamatwali = ''; $std->hp_ortu = ''; $std->pend_ibu = ''; $std->pend_bpk = ''; $std->kerja_ibu = ''; $std->kerja_bpk = ''; $std->gaji_ibu =''; $std->gaji_bpk = ''; $std->gaji_wali = ''; $std->pend_wali = ''; $std->kerja_wali = ''; $this->logStatus('registering: '.$std->nim); $ret2 = $this->admin->registerSPMBStudent($std); if(isset($ret2->error)){ $this->logStatus('Error Student: '.$std->nim.' '.$std->nama.' '.$ret2->error->message); } if(isset($ret2->status)){ if($ret2->status==0){ $this->logStatus('Error Student: '.$std->nim.' '.$std->nama.' '.$ret2->message); }else{ $this->logStatus('done: '.$ret2->status); //return TRUE; } } $row++; } fclose($handle); } } } } $r = new ImportStudentFromExcel(); $r->run();