Alhamdulillah, lagi rada bosen ngerjain tugas kuliah, coba ngelimpahin sama tulisan yang semoga bermanfaat untuk para programmer JAVA. Kebetulan lagi di projek yang user minta tampilan web nya harus persis sama excel report mereka. Beberapa solusi sebenarnya udah dilakuin, bikin manual ataupun convert html ke excel. Untuk conver excel keHTML, sebenarnya bisa pake library APACHE POI, Cuma memang hasilnya g terlalu memuaskan kalau excel nya bentuknya kompleks.
Jadilah solusinya adalah menggunakan template. Template nya diambil dari excel sendiri, tinggal save as Web Page. Alhamdulillah di JAVA ada library keren untuk inject komponen HTML jadi kebantu banget, freemarker nama library nya.
Untuk teknologi yang dipake:
- JAVA 7 Update 79
- Eclipse Indigo
- Freemarker 2.2.8
Untuk source code nya sebagai berikut:
import java.io.File; import java.io.FileWriter; import java.io.Writer; import java.util.HashMap; import java.util.Map; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateExceptionHandler; public class ExcelToHTML { public static void main(String args[]) throws Exception { Configuration cfg = new Configuration(Configuration.VERSION_2_3_24); cfg.setDirectoryForTemplateLoading(new File("D:\\Excel To HTML\\")); cfg.setDefaultEncoding("ISO-8859-1"); cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); cfg.setLogTemplateExceptions(false); Map root = new HashMap(); int totalData = 15; String[] arrayKey = { "A", "B", "C", "D", "E" }; for (String key : arrayKey) { for (int i = 0; i < totalData; i++) { switch (key) { case "A": root.put(key + String.valueOf(i + 1), "1.000.00" + String.valueOf(i) + ",00"); break; case "B": root.put(key + String.valueOf(i + 1), "2.000.00" + String.valueOf(i) + ",00"); break; case "C": root.put(key + String.valueOf(i + 1), "3.000.00" + String.valueOf(i) + ",00"); break; case "D": root.put(key + String.valueOf(i + 1), "4.000.00" + String.valueOf(i) + ",00"); break; case "E": root.put(key + String.valueOf(i + 1), "5.000.00" + String.valueOf(i) + ",00"); break; } } } root.put("F1", " 15,000,000.00"); root.put("F2", " 15,000,005.00"); root.put("F3", " 15,000,010.00"); root.put("F4", " 15,000,015.00"); root.put("F5", " 15,000,020.00"); root.put("F6", " 15,000,025.00"); root.put("F7", " 15,000,030.00"); root.put("F8", " 15,000,035.00"); root.put("F9", " 15,000,040.00"); root.put("F10", " 15,000,045.00"); root.put("F11", " 15,000,050.00"); root.put("F12", " 15,000,055.00"); root.put("F13", " 15,000,060.00"); root.put("F14", " 15,000,065.00"); root.put("F15", " 15,000,070.00"); root.put("TANGGAL", "1 Juni 2016"); root.put("TOTAL", "225,000,525.00"); Template temp = cfg.getTemplate("Excel To HTML Template.htm"); Writer out = new FileWriter("D:\\Excel To HTML\\Output.htm"); temp.process(root, out); out.close(); } } |
Hasilnya sebagai berikut:
Versi Slideshare
CMIIW .
Marifnst, 20160621
Leave a Reply