Langkah Mudah Export File .doc Untuk CodeIgniter

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 .

Leave a Reply

Your email address will not be published. Required fields are marked *