Berangkat dari sebuah tutorial sederhana dari blog milik klewos saya kemudian menerapkannya dengan sedikit penyesuaian. Karena sejujurnya ketika melakukan Copy paste dari blog tersebut, Saya mendapatkan error. output berupa file
.doc
tidak bisa dibuka, walaupun ekstensinya.doc
ataupun.docx
. Saya kira ada bagian.xml
milik Microsoft Word, telah berubah.
Untuk tulisan kali ini saya menggunakan framework Codeigniter versi 2, untuk penjelasan lengkap mengenai framework ini bisa Anda baca pada laman dokumentasi
Persiapkan View
Saya mengawalinya dengan melakukan menyimpan dokumen word menjadi .xml
. Terdapat beberapa cara berbeda untuk melakukannya, saya melakukannya menggunakan aplikasi Microsoft Word itu sendiri. Yaitu dengan save ataupun save as lalu pilih format Word 2003 XML Document atau menggunakan Word XML Document. Pada dasarnya 2003 untuk format .doc
sedangkan .docx
menggunakan XML Document saja. Nyatanya, yang saya dapatkan adalah tidak terdapat perbedaan utama untuk bagian ini, karena begitu file berformat .doc
bisa dibaca sedangkan lainnya tidak.
Selesai pada bagian ini, ubah file .xml
tadi menjadi file berekstensi .php
. Mudah saja, ubah eksistensi nya dengan menekan F2 pada Windows atau jika Anda menggunakan Linux lewat perintah mv pada terminal. Maka otomatis file, akan melakukan rename dengan sendirinya.
Ketika membuka file .xml
tentunya tadi akan ada baris sangat panjang yang sebenarnya bagian ini merupakan bentuk tree. Jika pun Anda pernah mengembangkan software Android, ataupun Bentuk .xml
dari web, bentuk .xml
seharusnya akan keliatan lebih ramah. Untuk memformatnya menjadi bagian yang lebih enak terbaca, saya menggunakan Microsoft Expression Web (masih trial tapi sudah cukup untuk kebutuhan saya).
Pada bagian ini seharusnya view sudah bisa untuk menampilkan data dari controller.
Controller
Saya membuat method baru untuk melakukan action writing file. Saya menyebut nya begitu menyesuaikan dengan nama fungsi dalam codeigniter. kurang lebih berikut adalah code dalam method yang saya gunakan
$data['for_somewhere']=$this->model->get_method($some_value_here);
$filename = "Surat_Informasi.doc";
$path = "docs/";
mkdir($path);
$print_docs = $this->load->view('ppk/templates_surat_informasi_harga', $data,TRUE);
write_file("$path/$filename",$print_docs);
Penjelasan singkat:
$data['for_somewhere']=$this->model->get_method($some_value_here);
Data dari model, biasanya berupa Array. Ataupun berupa format data lain
$filename = "Surat_Informasi.doc";
Nama file dari hasil generate yang akan dibuat
$path = "docs/";mkdir($path);
Nama direktori tempat menyimpan file, berikut dengan perintah untuk membuat direktori nya.
$print_docs = $this->load->view('ppk/templates_surat_informasi', $data,TRUE);
Mengambil template yang akan dijadikan file untuk melakukan generate
write_file("$path/$filename",$print_docs);
Melakukan proses write_file sesuai dengan parameternya
Model
Silahkan Anda sesuaikan dengan kebutuhan Anda bagaimana model yang dibutuhkan
Weakness
Metode yang saya gunakan ini terdapat kelemahan pada :
– Penulisan hanya menggunakan abjad english, perkiraannya adalah masalah unicode. Sehingga ketika memaksa untuk menggunakan bahasa lain misal bahasa arab, jerman atau france. File .doc
akan dikatakan rusak.
– Untuk penggunaan method force_download
jika dijalankan pada hasil eksport, filenya akan rusak. entah sebab apa pada tahap ini masih belum diketahui .
2 replies on “Langkah Mudah Export File .doc Untuk CodeIgniter”
Kalau mau buat format buat soal di aplikasi woka dengan format word bisa ngga?soalnya untuk import soal hanya file exel saja yang suport…
Oh ini database lokal menggunakan excel ya? Sepertinya dari jenis kegunaannya antara excel dan word emang beda