Export MySql data with Apache POI

Bismillah…

Pada kesempatan kali ini saya akan membahas tentang kelanjutan posting sebelumnya tentang mysql backup n recovery yg br smpe dua seri (Insya Allah akan dilanjutkan ke seri2 berikutnya. Yg nulis masih belajar). Salah satu fungsi yang harus ada dalam tugas KP saya adalah administrator system bisa melakukan backup database secara langsung melalui back end aplikasi ini. Sehingga admin tidak perlu lagi menggunakan tools administrasi mysql seperti mysql front, sql yog, dll.

Tulisan kali mungkin akan lebih banyak berisi kode-kode program yang berbau. Bukan berbau minyak wangi, bukan juga berbau sate, tapi berbau JAVA. Kenapa kok pake java ??? Tanya kenapa?? Tanya siapa?? Jawabnya adalah karena aplikasi KP saya di-bangun menggunakan JSP+JSTL+Taglib2. Sehingga saya gunakan java bean untuk men-generate data dari mysql dan kemudian di-export ke Ms. Excel.

Untuk mempermudah melakukan pekerjaan ini, tentunya saya tidak mungkin harus buat dari awal. (bisa2 br 2 tahun KP ny slese) Oleh karena itu saya minta bantuan (download) pada Apache Foundation untuk membuat library java yang bisa digunakan untuk mengakses API Microsoft Office. Akhirnya dengan segala kebaikan Apache Foundation, saya dapat dengan mudah menggunakan library tersebut.

Libraby tersebut adalah Apache POI. Library ini digunakan untuk membaca dan menulis file dalam format Microsoft Office, seperti word, excel, powerpoint. Anda bisa mendapatkan library ini di alamat ini. Ada beberapa library yang ditawarkan oleh apache POI ini tergantung dengan format filenya. Misalnya untuk file excel seperti yang akan saya gunakan nanti menggunakan HSSF, untuk powerpoint menggunakan HSLF, dsb. Oke sekarang saatnya memulai tahap koding nya. Setelah menambahkan library yang dibutuhkan pada project java anda, maka kode utama untuk melakukan export data dari mysql ke excel adalah sbb:

Connection con;
// MySQL MM JDBC driver
Class.forName(“org.gjt.mm.mysql.Driver”);
// a JDBC url
con = DriverManager.getConnection(“jdbc:mysql://localhost/KP”,”root”,”root321″);
Statement st;
ResultSet rs;
ResultSetMetaData rmd;

// create query to table
st = con.createStatement();
rs = st.executeQuery(“select * from “+tableName);
rmd = rs.getMetaData();

// create new workbook and new sheet in excel
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet(“new sheet”);

// create font n style
HSSFFont font = wb.createFont();
font.setFontHeightInPoints((short)10);
font.setFontName(“Arial”);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

HSSFCellStyle style = wb.createCellStyle();
style.setFont(font);

// create column n fill it with column’s name of table
HSSFRow row = sheet.createRow((short)0);
for (int i=0; i

  • potongan kode di atas adalah salah satu method yang ada dalam aplikasi KP yang saya kerjakan.
  • Dalam kode di atas terdapat variable tableName dan path. Kedua variable itu adalah variable yg ada pada parameter method. Sehingga untuk melakukan export user tinggal memilih table mana saja yang akan di-export. Jadi outputnya adalah data pertabel. Sedangkan path adalah lokasi output file, contoh path “F:/backup”
  • Untuk contoh hasilnya, misalnya pada table tamu dengan struktur dan data seperti ini.

    Menghasilkan file excel seperti ini

    Itu saja yang bisa saya sampaikan pada posting kali ini. Semoga bermanfaat. Mohon maaf klo ada yang salah atau penjelasan yang kurang lengkap.

    Alhamdulillah …..

    10 thoughts on “Export MySql data with Apache POI

    1. maaf mas…
      klo dengan query bisa g ya mas…
      mksudnya…
      klo dari beberapa table ke excel dengan suatu kondisi tertentu…

      1. bisa saja, tinggal main2 dibagian
        rs = st.executeQuery(“select * from “+tableName);

        query nya tinggal disesuaikan sm kebutuhan

    2. Posting ini kan untuk export ke Ms Excel ya, kalau sebaliknya gmn? Saya mau import dari Excel ke MySql. Tau caranya ga? Thx b4.🙂

    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