Some Useful Method When Working With Apache POI (Excel)

  1. How to add color on background/foreground cell
    public void doSample(){
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheetLapTrx = workbook.createSheet("Sample Sheet");
        row = sheetLapTrx.createRow(0);
        cell = row.createCell((short) 0);
    
        XSSFCellStyle style = (XSSFCellStyle)workbook.createCellStyle();
    
        XSSFColor color = new XSSFColor(Color.GREEN);
        style.setFillForegroundColor(color);
        style.setFillPattern(CellStyle.SOLID_FOREGROUND);	
    
        cell.setCellStyle(style);
    }
    
  2. How to merge cell
    public void doSample(){
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheetLapTrx = workbook.createSheet("Sample Sheet");
        row = sheetLapTrx.createRow(0);
        cell = row.createCell((short) 0);
    
        //merge cell A1 until C3
        sheetLapTrx.addMergedRegion(new CellRangeAddress(0, 0, 0, 2));
    }
    
  3. How to set font style
    public void doSample(){
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheetLapTrx = workbook.createSheet("Sample Sheet");
        row = sheetLapTrx.createRow(0);
        cell = row.createCell((short) 0);
    
        XSSFCellStyle style = (XSSFCellStyle)workbook.createCellStyle();
        XSSFFont font = workbook.createFont();
        font.setBoldweight(Font.BOLDWEIGHT_BOLD);
        style.setFont(font);
    
        cell.setCellStyle(style);
    }
    
  4. How to make border
    public void doSample(){
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheetLapTrx = workbook.createSheet("Sample Sheet");
        row = sheetLapTrx.createRow(0);
        cell = row.createCell((short) 0);
    
        XSSFCellStyle style = (XSSFCellStyle)workbook.createCellStyle();
        style.setBorderBottom(CellStyle.BORDER_THIN);
        style.setBorderTop(CellStyle.BORDER_THIN);
    
        cell.setCellStyle(style);
    }
    
  5. How to set text alignment
    public void doSample(){
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheetLapTrx = workbook.createSheet("Sample Sheet");
        row = sheetLapTrx.createRow(0);
        cell = row.createCell((short) 0);
    
        XSSFCellStyle style = (XSSFCellStyle)workbook.createCellStyle();
        style.setAlignment(CellStyle.ALIGN_CENTER);
    
        cell.setCellStyle(style);
    }
    

Pengalaman Mencari Pekerjaan Pertama

Horraayyy lulus kuliaaahh~

3.5 tahun berkecimpung dalam dunia perkuliahan, alhamdulillah Allah memperkenankan saya menyandang gelar S.Kom. Tapi kalau kata orang-orang sih lulus kuliah adalah gerbang awal perjuangan *tsaahh. Jadi selagi saya bisa “istirahat” dulu, saya akan beristirahat *lhoh.

Puas gelinding kesana kemari selama kurang lebih satu bulan untuk istirahat, saya memutuskan untuk mulai mencari pekerjaan. Dikala itu saya bener-bener nggak mau jenis pekerjaan yang melibatkan dunia perkodingan. Alasannya tentu karena nggak mau berpusing-pusing lagi dengan coding seperti saat dulu kuliah.

Ketak ketik CV yang sekiranya bagus walaupun hasil liat-liat CV temen, saya pun kemudian mengirimkan lamaran ke salah satu perusahaan IT swasta di Jakarta sebagai Software Quality Assurance. Alhamdulillah dipanggil buat interview.

Persiapan Sebelum Hari H Interview

Yah namanya juga interview pertama, jadinya bingung apa yang mesti disiapin. SMS dan chat pun dikirim kesana kemari nanya-nanya senior tentang pengalaman mereka interview beserta tips and trick biar lolos. Dan ini lah resumenya:

  • Banyak doa.
  • Pelajari hal yang berkaitan dengan perusahaan yang dilamar. Istilahnya kayak PDKT gitu lah. Misalnya bidang layanan perusahaan yang biasanya ada di halaman “About Us”. Hapalin kalau perlu. Biar keliatan kalau minat banget bekerja di perusahaan tersebut.
  • Lihat lokasi kantor. Biar nggk nyasar dan telat aja sih kalau ini.
  • Pelajari kembali materi-materi yang sekiranya bakal nyambung sama bidang pekerjaan yang dilamar. Misalnya kalau saya kan ngelamar jadi QA, yaaa yang dibaca itu misalnya SDLC.
  • Baca kembali Tugas Akhir yang dulu dibuat. Jangan sampe deh judul Tugas Akhirnya lupa.
  • Cari tahu gaji yang sesuai. Nggak kerendahan tapi juga nggak ketinggian.
  • Pilih baju yang pas.
  • Kalau type perusahaannya bakalan pake bahasa inggris, ya belajar speaking atau grammar lagi.
  • Siapin alat tulis yang lengkap. Fotokopi ijasah dan transkrip nilai termasuk fotokopi KTP. Jaga-jaga aja kalo diminta lamarannya lagi. Oh.. print CV dan surat lamarannya juga.

Continue reading “Pengalaman Mencari Pekerjaan Pertama”

How To Recalculate Formula Result On XLS (jxls lib)

If you use template directly from xls including the formula, you will need to recalculate and evaluate the result. It happen because Excel caches previously calculated results and you need to trigger recalculation to updated them.  From POI documentation there are two way to do this recalculation method. But in this article I will use only one method as example.

Here is my snap code:

@Autowired
private ServletContext context;

private void writeXLS(HttpServletResponse response, Books books) {
        Date today = new Date();
        String attch = "attachment; filename=\" + "fileresult.xls\"";
        try {
            try (ServletOutputStream os = response.getOutputStream()) {
                Map dataSource = fillXLSdata(books, today); //this my method just to fill the datasource
                String reportLocation = context.getRealPath("WEB-INF");
                response.setContentType("application/vnd.ms-excel");
                response.setHeader("Content-Disposition", attch);
                XLSTransformer transformer = new XLSTransformer();
                try (FileInputStream fis = new FileInputStream(reportLocation + "/reportTemplate.xls")) {
                    Workbook workbook = transformer.transformXLS(fis, dataSource);
                    workbook.getCreationHelper().createFormulaEvaluator().evaluateAll(); //evaluate all result
                    workbook.write(os);
                    os.flush();
                }
            }
        } catch (IOException | ParsePropertyException | InvalidFormatException e) {
            System.out.println("failed to process file because : " + e.getMessage());
        }
    }

Hope this simple article can help 🙂