Pertama-tama kita harus download library untuk membaca file excel (xls). Library yang saya gunakan adalah excel_reader yang saya dapat di google. Simpan file tersebut dalam folder %CI_Root%\system\application\libraries.
Selanjutnya jangan lupa untuk men-setting konfigurasi umum dari CodeIgniter.
Buat controller dengan nama contoh.php
class Contoh extends Controller { function Contoh(){ parent::Controller(); $this->load->helper('form'); // untuk menangani proses form } function index() { $this->load->view('import_file_excel'); } function read_file(){ include_once ( APPPATH."libraries/excel_reader2.php"); $data = new Spreadsheet_Excel_Reader($_FILES['userfile']['tmp_name']); $j = -1; for ($i=2; $i <= ($data->rowcount($sheet_index=0)); $i++){ $j++; $nama[$j] = $data->val($i, 1); $nim[$j] = $data->val($i, 2); $kelas[$j] = $data->val($i, 3); } $xdata['nama'] = $nama; $xdata['nim'] = $nim; $xdata['kelas'] = $kelas; $this->load->view('message_import_file_excel', $xdata); } }Penjelasan :
Fungsi index() adalah fungsi yang pertama kali dijalankan saat controller contoh dipanggil.
Fungsi read_file() adalah fungsi untuk membaca data yang ada dalam file excel (xls)
Selanjutnya kita buat file di view. Ada 2 file yang harus dibuat, yaitu
import_file_excel.php
dan message_import_file_excel.php
untuk
import_file_excel.php
file ini ditujukan untuk tampilan untuk mengimpor file.<html> <head> </head> <body> <br> Contoh untuk import excel <?php echo form_open('contoh/read_file');?> echo form_fieldset('IMPORT FILE PO'); ?> <table> <tr> <td>Upload file (*.xls) : </td> <td><input name="userfile" type="file"></td> <td><input name="upload" type="submit" value="import"></td> </tr> </table> <?php echo form_fieldset_close(); echo form_close();?> </body> </html>
untuk file
message_import_file_excel.php
ditujukan untuk menampilkan data yang telah diimpor dari file excel<html> <head></head> <body> <table border="1"> <tr> <th>Nama</th> <th>Kelas</th> <th>Nim</th> </tr> <?php $i = 0; while($i < count($nama)):?> <tr> <td><?php echo $nama[$i]?></td> <td><?php echo $nim[$i]?></td> <td><?php echo $kelas[$i]?></td> </tr> <?php $i++; endwhile;?> </table> </body> </html>
Nah, aplikasi sederhana untuk membaca file excel telah berhasil dibuat. Untuk contoh tamplate data di file excel dapat mengikuti seperti ini
NB :
- kode ini sudah di implementasikan di CI 1.7.3 dan berhasil. Untuk penggunaan di CI 2.0.x, kode bisa sedikit diedit pada class controller sesuai dengan standar penulisan di CI 2.0.x.
Demikian dulu pengenalan Framework PHP Codeigniter untuk bagian Impor File Excel (xls) dengan CodeIgniter dan library excel_reader... ^_^
Keyword : impot file excel, excel_reader, CodeIgniter
Untuk menghargai HKI(Hak Kekayaan Intelektual), sumber referensi yang saya pakai dan saya pelajari akan ditampilkan.
Referensi : CodeIgniter User Guide
Author : Moch. Zawaruddin Abdullah, www.zawaruddin.blogspot.com
mas,saya mau nanya kalau ekspor excel ke mysql dengan CI bisa gak ya mas,.
BalasHapusmas,kl ekspor dari excel ke mysql dengan ci bagaimana ya mas caranya?
BalasHapusError 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data.
BalasHapuskira2 knp tuh bos??? kq gak bisa kebaca.
@Faris : mf baru balas, klo untuk ekspor excel k mysql pake proses di atas juga bisa, tapi datanya jgn langsung d tampilkan d view, melainkan dilakukan query dulu ke database mysql untuk insert.
BalasHapus@david: coba d detailkan erornya...
Permisi, numpang komentar..
BalasHapus"Simpan file tersebut dalam folder %CI_Root%\system\application\libraries."
Setau saya apabila kita ingin menambahkan library ke dalam CI, dapat dilakukan dengan meletakkan nya di dalam application/libraries..
dengan begitu baris perintah "include_once ( APPPATH."libraries/excel_reader2.php"); " dapat diganti dengan
$this->load->library("excel_reader2");
dan menurut saya, konsep penggunaan CI menjadi semakin benar..
thanks...
Nice Post.. :)
ok... thanks saudara BSi telah mengoreksi artikel ini ^_^
Hapusmas, saya mau tanya kenapa dengan script yang sama tetapi ketika dijalankan muncul pesan error seperti ini?
BalasHapusA PHP Error was encountered
Severity: 8192
Message: Assigning the return value of new by reference is deprecated
Filename: libraries/excel_reader2.php
Line Number: 916
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\coba\application\libraries\excel_reader2.php:916)
Filename: core/Common.php
Line Number: 442
An Error Was Encountered
Non-existent class: Excel_reader2
saya menggunakan CI versi 2.0.3
mohon bantuannya..
coba sodara tunjukkan controller yg sodara buat, saya menggunakan CI 1.7. jadi ada kemungkinan terdapat fungsi tidak dipakai lagi.
Hapussaya sama kendalanya sama mas hermawan...controller yang saya punya :
BalasHapusfunction convert(){
$this->load->library("excel_reader2");
$data = new Spreadsheet_Excel_Reader($_FILES['userfile']['tmp_name']);
$j = -1;
for ($i=2; $i <= ($data->rowcount($sheet_index=0)); $i++){
$j++;
$nama[$j] = $data->val($i, 1);
$nim[$j] = $data->val($i, 2);
$kelas[$j] = $data->val($i, 3);
}
$xdata['nama'] = $nama;
$xdata['nim'] = $nim;
$xdata['kelas'] = $kelas;
$this->load->view('gaweng', $xdata);
}
saya pake codeigniter 2.1.0
untuk baris 916 pada excel_reader2.php, hilangkan tanda &
Hapuspada $this->_ole =& new OLERead();
dan juga ganti fungsi split() pada excel_reader menjadi explode()
semoga membantu....
Halu mas, saya jg pake CI 1.7.3
BalasHapustp ada message eror spt ini :
A PHP Error was encountered
Severity: Notice
Message: Undefined index: userfile
Filename: controllers/contoh.php
Line Number: 15
A PHP Error was encountered
Severity: Notice
Message: Undefined offset: 0
Filename: libraries/excel_reader2.php
Line Number: 390
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: nama
Filename: controllers/contoh.php
Line Number: 25
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: nim
Filename: controllers/contoh.php
Line Number: 26
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: kelas
Filename: controllers/contoh.php
Line Number: 27
mhn bantuannya mas
coba cek field input untuk file, apakah namanya 'userfile' atau tidak.
Hapus< input name="userfile" type="file">
selanjutnya definisikan variabel $nama, $nim, $kelas di atas sendiri dalam fungsi read_file
function read_file(){
$nama = $nim = $kelas = array();
...
}
mas nanya ya,, kalo data yang dimasukkan ada yang berupa foreign key gmn?
BalasHapusbisa saja, asal data (foreignkey) yang disimpan di excel dan di import ke web harus sama dengan data (foreignkey) yang ada pada database
Hapusthank ya .. berjalan sukses di CI 2.1 :D
BalasHapussama-sama...
Hapuswah dah dicoba di CI 2.1 ya... aku saja belum.. XD
saya ada masalah di sini mas =
BalasHapusAn Error Was Encountered
Non-existent class: Excel_reader2
untuk controller saya =
load->helper('form'); // untuk menangani proses form
}
function index() {
$this->load->view('contoh/import_file_excel');
}
function read_file(){
$this->load->library("excel_reader2");
//include_once ( APPPATH."libraries/excel_reader2.php");
$data = new Spreadsheet_Excel_Reader($_FILES['userfile']['tmp_name']);
$j = -1;
for ($i=2; $i <= ($data->rowcount($sheet_index=0)); $i++){
$j++;
$nama[$j] = $data->val($i, 1);
$nim[$j] = $data->val($i, 2);
$kelas[$j] = $data->val($i, 3);
}
$xdata['nama'] = $nama;
$xdata['nim'] = $nim;
$xdata['kelas'] = $kelas;
$this->load->view('contoh/message_import_file_excel', $xdata);
}
}
?>
coba untuk $this->load->library("excel_reader2"); di kommen aja
Hapuspake yg include_once ( APPPATH."libraries/excel_reader2.php");
jadi
//$this->load->library("excel_reader2");
include_once ( APPPATH."libraries/excel_reader2.php");
hal ini karena (berdasarkan pengalaman coba2 saya) CI menganggap excel_reader adalah suatu class tunggal dan nama classnya adl excel_reader2, akan tetapi dalam excel_reader itu terdapat beberapa class dan tidak ada class dg nama excel_reader2...
semoga membantu ^_^
hmmmm... mas bsa kirimin file excel_reader2.php yg mas gunakan?
Hapussama persis sama yg di code.google.com, g ada yg saya ganti2 kok. ^_^
Hapushuehehhehe,,, makasih mas dah di bls terus, ini td dah saya coba lagi, eh yg keluar skr masalah nya sama kaya mas yan, yaitu :
BalasHapusA PHP Error was encountered
Severity: Notice
Message: Undefined index: userfile
Filename: controllers/contoh.php
Line Number: 15
A PHP Error was encountered
Severity: Notice
Message: Undefined offset: 0
Filename: libraries/excel_reader2.php
Line Number: 390
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: nama
Filename: controllers/contoh.php
Line Number: 25
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: nim
Filename: controllers/contoh.php
Line Number: 26
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: kelas
Filename: controllers/contoh.php
Line Number: 27
itu knp yah mas?
coba cek dulu nama yang ada di view ( <input name="userfile" ... )
Hapussudah sama kah dengan yg d controller
$data = new Spreadsheet_Excel_Reader($_FILES['userfile']['tmp_name']);
sudah sama mas, tapi tetep kaya gitu eror nya :((
BalasHapusoh.. klo error coba cek dulu apakah filenya terupload dan bisa dibaca...
Hapuscoba cara uploadnya pakai library uploadnya codeigniter...
Anak-anaku kalian terlebih dahulu harus mengedit file excel_reader2.php sesuai dengan prototipe CI versi yang digunakan, versi berapapun saya coba jalan yang penting file excel_reader2 harus diedit sesuai dengan prototipe CI yang Anda gunakan
BalasHapuslihat disini http://codeigniter.com/user_guide/general/creating_libraries.html
simpan di .../aplication/library/
coba pake upload library ci
kurang lebih seperti ini
...
..
.
function do_ipload() {
$temp = realpath(APPPATH . 'temp_upload');
$config = array(
'allowed_types' => 'xls|xlsx',
'upload_path' => $temp,
//'file_name' => 'sample.xls',
'max_size' => 2000
);
$this->load->library('upload', $config);
if (!$this->upload->do_upload()) {
$data = array('error' => $this->upload->display_errors());
$this->data['data_excel'] = $data;
$this->load->view('gis/excel_data_view', $this->data);
} else {
$data = array('error' => false);
$upload_data = $this->upload->data();
$this->load->library('excel_reader2');
$this->excel_reader2->setOutputEncoding('CP1251');
$file = $upload_data['full_path'];
$this->excel_reader2->read($file);
error_reporting(E_ALL ^ E_NOTICE);
// Sheet 1
$data = $this->excel_reader2->sheets[1];
$dataexcel = Array();
for ($i = 1; $i <= $data['numRows']; $i++) {
if ($data['cells'][$i][1] == '')
break;
$dataexcel['nama'] = $data['cells'][$i][1];
$dataexcel['alamat'] = $data['cells'][$i][2];
}
$this->data['data_excel'] = $dataexcel;
$this->load->view('gis/excel_data_view', $this->data);
}
oh ya rubah juga file import_file_excel.php diatas pada baris
BalasHapusmenjadi
terima kasih mas..
BalasHapussudah tidak ada yang error, semuanya lancar :)
pak, saya menemukan ini
BalasHapusA PHP Error was encountered
Severity: Notice
Message: Undefined variable: tmp
Filename: libraries/Excel_reader2.php
Line Number: 812
itu kenapa ya? apa yg perlu dirubah di excel_reader2.php ?
saya menggunakan CI versi 2.1.0
maaf baru bls, lama g OL...
Hapusada kemungkinan file excelnya g kebaca...
coba d debug dulu...
mas, kalau langsung insert database gimana script insertnya?
BalasHapusmohon pencerahannya
bisa langsung insert datanya...
Hapuspas dalam looping "for" lakukan proses insert ke database...
for ($i=2; $i <= ($data->rowcount($sheet_index=0)); $i++){
$j++;
// insert ke database lewat model
}
Fatal error: require(): Cannot redeclare class ci_exceptions in /var/www/html/Code/system/codeigniter/Common.php on line 127
BalasHapusIni kenapa ya mas?
Saya pake yang versi 1.7
maaf baru balas, lg sibuk kerja...
Hapuswah coba saya cek controllernya, kemungkinan ada kesalahan d controller yg menyebabkan seperti itu...
Code Igniter Version 2.1.3
BalasHapus==========================
Controller:
class Contoh extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index() {
$this->load->helper('form');
$this->load->view('import_file_excel');
}
function read_file(){
include_once ( APPPATH."libraries/excel_reader2.php");
$excel_file = new Spreadsheet_Excel_Reader($_FILES['userfile']['tmp_name']);
$j = -1;
for ($i=2; $i <= ($excel_file->rowcount($sheet_index=0)); $i++){
$j++;
$nama[$j] = $excel_file->val($i, 1);
$nim[$j] = $excel_file->val($i, 2);
$kelas[$j] = $excel_file->val($i, 3);
}
$data['nama'] = $nama;
$data['nim'] = $nim;
$data['kelas'] = $kelas;
$this->load->view('message_import_file_excel', $data);
}
}
View:
Change this "form_open" to "form_open_multipart"
OK. thanks for the suggestion :)
Hapus
BalasHapusA PHP Error was encountered
Severity: Warning
Message: include_once(C:\xampp\htdocs\PA2/system/application/libraries/excel_reader2.php): failed to open stream: No such file or directory
Filename: controllers/contoh.php
Line Number: 20
-----------------------------------
A PHP Error was encountered
Severity: Warning
Message: include_once(): Failed opening 'C:\xampp\htdocs\PA2/system/application/libraries/excel_reader2.php' for inclusion (include_path='.;C:\xampp\php\PEAR')
Filename: controllers/contoh.php
Line Number: 20
-----------------------------------
Fatal error: Class 'Spreadsheet_Excel_Reader' not found in C:\xampp\htdocs\PA2\system\application\controllers\contoh.php on line 21
kalo bole tau itu kenapa ya mas ??
itu library excel_reader2.php nya tidak ada di folder library...
Hapusklo bisa jangan d load via CI ($this->load->library()), tp pake
include_once ( APPPATH."libraries/excel_reader2.php");
trus edit file excel_reader2.php seperti di sini
pak saya pakai CI 1.7.2
BalasHapussaya menemukan error seperti ini
A PHP Error was encountered
Severity: Notice
Message: Undefined index: userfile
Filename: controllers/contoh.php
Line Number: 22
Padahal nama userfile di input type dan di controller sudah sama.
kemudian yang ini lagi
A PHP Error was encountered
Severity: Notice
Message: Undefined offset: 0
Filename: libraries/excel_reader2.php
Line Number: 390
mohon pencerahannya pak
di view untuk form_open('contoh/read_file');
Hapusganti dengan form_open_multipart('contoh/read_file');
setelah itu, coba sebelum code
$data = new Spreadsheet_Excel_Reader($_FILES['userfile']['tmp_name']);
pada controller, u kasih pengecekan terhadap upload file nya, seperti
echo '<pre>';
print_r($_FILES);
die;
jika web tidak menampilkan data ttg file yg telah d upload,maka uploadnya gagal...
silakan d coba dulu...
kalo sudah berhasil, 3 baris kode di atas dihapus lagi...
moga membantu
misi mas.. saya memakai CI 1.7.2,
BalasHapussya menemukan error seperti ini.
A PHP Error was encountered
Severity: Notice
Message: Undefined index: userfile
Filename: controllers/contoh.php
Line Number: 22
padahal userfile yang di view dan di controller sudah sama
dan 1 lagi..
A PHP Error was encountered
Severity: Notice
Message: Undefined offset: 0
Filename: libraries/excel_reader2.php
Line Number: 390
mohon bantuan'a mas
maaf mau tanya, pengaturan koneksi database agar data excel yang diupload otomatis tersimpan di database gmn ya caranya?
BalasHapusmohon pencerahannya, trima kasih :)
maksudnya ini file excelnya yg masuk kedalam database atau hanya datanya saja?
Hapusklo filenya jg masuk dalam database harus ada field tambahan untuk menampung sebuah file...
hanya datanya saja Pak..
Hapussaya pake postgre, ketika diupload muncul pesan error gini
A PHP Error was encountered
Severity: Warning
Message: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: could not translate host name "postgre" to address: No host data of that type was found
Filename: controllers/form.php
Line Number: 65
apa mungkin penulisan koneksi saya salah?
ini yang saya tulis di program saya
line 65 : pg_connect("postgre", "postgres", "password");
line 66 : pg_select_db("database1");
bukan postgre, defaultnya "localhost"
Hapushm, tp kok aneh ya... itu koneksi k databasenya d controller CI ya?
coba baca yg ini http://zawaruddin.blogspot.com/2011/03/pengenalan-framework-php-codeigniter.html
sudah berhasil tampilkan data...dan saya pengin insert ke database, gimana carnya ya? (baru)
BalasHapusbisa d hapus dan d ganti code untuk insert pada code setelah looping data d excelnya...
Hapuscontoh
for ($i=2; $i <= ($excel_file->rowcount($sheet_index=0)); $i++){
$j++;
$nama[$j] = $excel_file->val($i, 1);
$nim[$j] = $excel_file->val($i, 2);
$kelas[$j] = $excel_file->val($i, 3);
}
bisa d ganti
for ($i=2; $i <= ($excel_file->rowcount($sheet_index=0)); $i++){
$this->db->insert('tabel', array('kolom1' => $excel_file->val($i, 1), 'kolom2' => $excel_file->val($i, 2)));
}
untuk code insert ke database saya anjurkan ditaruh model aja, yg di atas hanya contoh... :)
Thanks Article nya, bantu kerjaan saya. Makasi banyaak.
BalasHapussama-sama
Hapusmau nanya pak
BalasHapusimport sudah bisa, tapi nggak masuk database
waktu di model saya tambah
"
function tambahuser($data)
{
for ($i=2; $i <= ($excel_file->rowcount($sheet_index=0)); $i++){
$this->db->insert('siswa', array('id' => $data->val($i, 1), 'nama_siswa' => $data->val($i, 2),
'alamat_siswa' => $data->val($i, 3), 'nomor_hp' => $data->val($i, 4)));
}
}
"
malah keluar error
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: excel_file
Filename: models/User_model.php
Line Number: 9
itu kenapa ya pak?
pada baris ini
Hapusfor ($i=2; $i <= ($excel_file->rowcount($sheet_index=0)); $i++),
coba ganti $excel_file dengan $data....
keluar error begini pak:
HapusError Number: 1054
Unknown column 'Array' in 'field list'
INSERT INTO `siswa` (`id`, `nama_siswa`, `alamat_siswa`, `nomor_hp`) VALUES (Array, Array, Array, Array)
Filename: C:\xampp\htdocs\tugassiswa\system\database\DB_driver.php
Line Number: 330
bgmna pak?
coba pake cara yg ini, mf baru bls... lg sibuk.. hehe
Hapus//controller
function read_file(){
include_once ( APPPATH."libraries/excel_reader2.php");
$data = new Spreadsheet_Excel_Reader($_FILES['userfile']['tmp_name']);
$query = array();
for ($i=2; $i <= ($data->rowcount($sheet_index=0)); $i++){
$query[] = array( 'id' => $data->val($i, 1),
'nama_siswa' => $data->val($i, 2),
'alamat_siswa' => $data->val($i, 3),
'nomor_hp' => $data->val($i, 4));
}
$this->model->tambahuser($query);
}
// model
function tambahuser($data){
$this->db->insert_batch('siswa', $data);
}
help agan2.. kalo data file excel nya seperti ini "01/02/2014 00:06:13 93236277" perintah untuk explode/ dipecah2 nya gimana ya?
BalasHapuskayak gini gan...
Hapusexplode('/', "01/02/2014 00:06:13 93236277");
cek d mari http://php.net/manual/en/function.explode.php
naro perintah explode nya di mana ya mas?
Hapuskalo coding nya seperti ini.. mohon pencerahannya :)
include_once (APPPATH."libraries/excel_reader2.php");
$cell = new Spreadsheet_Excel_Reader($_FILES['userfile']['tmp_name']);
$baris = $cell->rowcount($sheet_index=0);
$sukses = 0;
$gagal = 0;
for ($i=2; $i <=($baris); $i++){{
$insert = array ('tanggal' => $cell->val($i,1),
'jam' => $cell->val($i,2),
'nik' => $cell->val($i,3),
);
$this->muploaddata->tambahuser($insert);
if ($insert) $sukses++;
else $gagal++;
}
$data['sukses'] = $sukses;
$data['gagal'] = $gagal;
maaf baru bls.... jarang buka blog hehe
Hapusya tanggal yg mau d pecah berada pada kolom berapa di excel?
contoh klo ada d kolom 1
for ($i=2; $i <=($baris); $i++){
$tgl = explode(' ', $cell->val($i,1));
$insert = array ('tanggal' => $tgl[0],
'jam' => $tgl[1],
'nik' => $tgl[2]);
}
'jam' => $cell->val($i,2),
'nik' => $cell->val($i,3),
);
mas cara diatas bisa import file excel dengan format xlsx ngga mas ? soalnya saya coba file itu tidak bisa mas.. mohon pencerahan mas
BalasHapuswah ndak bisa mas, coba baca ini
Hapushttps://code.google.com/p/php-excel-reader/wiki/Documentation
klo ingin bisa import ke xlsx ane rekomendasiin ini http://phpexcel.codeplex.com/
mas templatenya web sampean ini pake apa ya?? :-)
BalasHapusbawaan blog mas....
Hapusmas aku import data tanggal di excel yyyy/mm/dd tp di sql pembacaannya kok 0000-00-00 , mohon pencerahannya
BalasHapusmaksudnya dari excel formatnya yyyy/mm/dd tp pas dimasukkan ke db jadinya 0000-00-00 kah?
Hapusklo iya, secara default input date yg diketahui db adalah format yyyy-mm-dd
jadi ubah dulu format yyyy/mm/dd jadi yyyy-mm-dd
ada 3 opsi
1. tambahkan fungsi STR_TO_DATE dalam query
INSERT INTO tabel (tanggal) VALUES (STR_TO_DATE('$tanggal', '%Y/%m/%d'));
dimana $tanggal -> variabel tgl dari excel, dan '%Y/%m/%d' adalah bentuk format tanggalnya (yyyy/mm/dd).
2. sebelum diinsert ke database data tanggal dari excel di ganti pakai str_replace.
$tanggal = str_replace("/", '-', $tanggal);
3. ganti format penulisan tanggal di excel dari yyyy/mm/dd ke yyyy-mm-dd
mas minta tolong. saya ada yang error seperti ini:
BalasHapusA PHP Error was encountered
Severity: 8192
Message: Assigning the return value of new by reference is deprecated
Filename: libraries/excel_reader2.php
Line Number: 916
An Error Was Encountered
Non-existent class: Excel_reader2
saya menggunaka CI 2.2.1 dan excel_reader 2.21
tolong bantuannya, terima kasih
buka file excel_reader2.php nya, trus edit pada baris 916.
HapusBuang tanda "&" nya jadi
$this->_ole = new OLERead();
masih keluar error seperti ini mas
HapusNon-existent class: Excel_reader
coba pakai yg saya contohkan dulu
Hapusinclude_once ( APPPATH."libraries/excel_reader2.php");
jangan d load via library nya CI.
ini controller saya mas.
BalasHapusfunction read_file(){
$this->load->library('excel_reader2');
$data = new Spreadsheet_Excel_Reader($_FILES['userfile']['tmp_name']);
$j = -1;
for ($i=2; $i <= ($data->rowcount($sheet_index=0)); $i++){
$j++;
$nama[$j] = $data->val($i, 1);
$nim[$j] = $data->val($i, 2);
$kelas[$j] = $data->val($i, 3);
}
$xdata['nama'] = $nama;
$xdata['nim'] = $nim;
$xdata['kelas'] = $kelas;
$this->load->view('message_import_file_excel', $xdata);
}
mas kalau penulisan menggunakan extension mysqli terutama di saat penulisan query insert data itu gimanaya...?mohon petunjuk
BalasHapusuntuk CI terbaru set default drivernya sudah mysqli
Hapusuntuk insert bisa pake query builder $this->db->insert();
maas saya pakai php ci 3
BalasHapusresponnya kalau import .xlsx file does not exist
kurangnya apa ya?
public function impor_desainer($id_elemen) {
cek_login();
$this->load->view('konek');
$db = new mysqli(db_host, db_user, db_pass, db_name);
$nama = date('His');
mysqli_query($db, "DELETE FROM database_elemen WHERE id_dda='$id_elemen'");
$fileName = time().$_FILES['dokumen']['name'];
$config['upload_path'] = 'uploads/dokumen/impor/';
$config['file_name'] = $nama.'.xlsx';
$config['max_size'] = '2048';
$config['overwrite'] = true;
$config['allowed_types'] = 'xlsx';
$this->load->library('upload');
$this->upload->initialize($config);
if(! $this->upload->do_upload('dokumen') )
$this->upload->display_errors();
$media = $this->upload->data('dokumen');
$inputFileName = 'uploads/dokumen/impor/'.$nama.'.xlsx';
try {
$inputFileType = IOFactory::identify($inputFileName);
$objReader = IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFileName);
} catch(Exception $e) {
die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
}
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
for ($row = 2; $row <= $highestRow; $row++) {
$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
$data = array(
"kode1"=> $rowData[0][0],
"kode2"=> $rowData[0][1],
"kode3"=> $rowData[0][2],
"kode4"=> $rowData[0][3],
"kode5"=> $rowData[0][4],
"kode6"=> $rowData[0][5],
"kode7"=> $rowData[0][6],
"urutan"=> $rowData[0][7],
"teks"=> $rowData[0][8],
"satuan"=> $rowData[0][9],
"tampil"=> $rowData[0][10],
"tampil_dataku"=> $rowData[0][11]
);
$impor_id_dda = $id_elemen;
$impor_kode1 = $data['kode1'];
$impor_kode2 = $data['kode2'];
$impor_kode3 = $data['kode3'];
$impor_kode4 = $data['kode4'];
$impor_kode5 = $data['kode5'];
$impor_kode6 = $data['kode6'];
$impor_kode7 = $data['kode7'];
$impor_urutan = $data['urutan'];
$impor_teks = $data['teks'];
$impor_satuan = $data['satuan'];
$impor_tampil = $data['tampil'];
$impor_tampil_dataku = $data['tampil_dataku'];
$impor_create_at = date('Y-m-d H:i:s');
$impor_update_at = '0000-00-00 00:00:00';
mysqli_query($db, "INSERT INTO database_elemen SET id='', id_dda='$impor_id_dda', kode1='$impor_kode1', kode2='$impor_kode2', kode3='$impor_kode3', kode4='$impor_kode4', kode5='$impor_kode5', kode6='$impor_kode6', kode7='$impor_kode7', urutan='$impor_urutan', teks='$impor_teks', satuan='$impor_satuan', tampil='$impor_tampil', tampil_dataku='$impor_tampil_dataku', create_at='$impor_create_at', update_at='$impor_update_at'");
}
redirect(site_url('dda_dua/row_desainer/'.$id_elemen));
}
terimakasih