document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. package com.fahmisatrio.bean;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.IOException;
  6. import java.util.Iterator;
  7.  
  8. import org.apache.poi.hssf.usermodel.HSSFSheet;
  9. import org.apache.poi.ss.usermodel.Cell;
  10. import org.apache.poi.ss.usermodel.DateUtil;
  11. import org.apache.poi.ss.usermodel.Row;
  12. import org.apache.poi.xssf.usermodel.XSSFSheet;
  13. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  14.  
  15. public abstract class test {
  16.  
  17.     public String parsingExcelDocument(String filedir, int sheetnum) throws Exception {
  18.         // Define file and sheet to be proced
  19.         FileInputStream file = new FileInputStream(new File(filedir)); //Directory file excel yang akan diproses
  20.         int sheetNumber = sheetnum; //Sheet pertama = 0
  21.        
  22.         //HSSFSheet inputSheet = du.prepareDocument(file,sheetNumber); //Untuk document dengan format XLS
  23.         XSSFSheet inputSheet = prepareDocument(file,sheetNumber); //Untuk document dengan format XLSX
  24.         Integer[] length = validateDocument(inputSheet);
  25.         int totalRow = length[1];
  26.         int totalColumn = length[0];
  27.        
  28.         Object[][] result = parseDocument(inputSheet, totalColumn, totalRow);
  29.        
  30.         //result dapat diolah lagi atau disimpan ke database
  31.         //code
  32.         System.out.println(result);
  33.        
  34.         return "finish";
  35.  
  36.     }
  37.    
  38.     public XSSFSheet prepareDocument(FileInputStream file, Integer sheetNumber) throws IOException {
  39.         //Get the workbook instance for XLS file
  40.         XSSFWorkbook workbook = new XSSFWorkbook (file);
  41.         //Get sheet from the workbook
  42.         XSSFSheet sheet = workbook.getSheetAt(sheetNumber);
  43.         return sheet;
  44.     }
  45.    
  46.     public Integer[] validateDocument(XSSFSheet sheet) throws Exception {
  47.         // Iterate through each rows from sheet
  48.         Iterator<Row> rowIterator = sheet.iterator();
  49.         int indexCol = 0;
  50.         int indexRow = 0;
  51.        
  52.         while (rowIterator.hasNext()) {
  53.             Row row = rowIterator.next();
  54.            
  55.             if(row.getRowNum()==0){
  56.                 Iterator<Cell> countColumn = row.cellIterator();
  57.                 while (countColumn.hasNext()) {
  58.                     Cell cell = countColumn.next();
  59.                     indexCol++;
  60.                 }
  61.             }
  62.             indexRow = row.getRowNum();
  63.         }
  64.         Integer[] index = new Integer[2];
  65.         index[0] = indexCol;
  66.         index[1] = indexRow;
  67.         return index;
  68.     }
  69.    
  70.     public Object[][] parseDocument(XSSFSheet sheet, Integer columnLength, Integer rowLength) throws Exception {
  71.         // Iterate through each rows from sheet
  72.         Iterator<Row> rowIterator = sheet.iterator();
  73.         Object[][] result = new Object[columnLength][rowLength];
  74.         while (rowIterator.hasNext()) {
  75.             Row row = rowIterator.next();
  76.             if(row.getRowNum()>0){
  77.                 // For each row, iterate through each columns
  78.                 Iterator<Cell> cellIterator = row.cellIterator();
  79.                 while (cellIterator.hasNext()) {
  80.  
  81.                     Cell cell = cellIterator.next();
  82.                    
  83.                     for(int i=0; i<columnLength;i++){
  84.                         if (cell.getColumnIndex() == i) {
  85.                             switch (cell.getCellType()) {
  86.                             case Cell.CELL_TYPE_STRING:
  87. //                              System.out.print(cell.getStringCellValue()+" ");
  88.                                 result[i][row.getRowNum()-1] = cell.getStringCellValue();
  89.                                 break;
  90.                                
  91.                             case Cell.CELL_TYPE_FORMULA:
  92. //                              System.out.print(cell.getCellFormula());
  93.                                 try {
  94. //                                  System.out.print(cell.getStringCellValue()+" ");
  95.                                     result[i][row.getRowNum()-1] = cell.getStringCellValue();
  96.                                 } catch (Exception e) {
  97. //                                  System.out.print(cell.getNumericCellValue()+" ");
  98.                                     result[i][row.getRowNum()-1] = cell.getNumericCellValue();
  99.                                 }
  100.                                 break;
  101.                                
  102.                             case Cell.CELL_TYPE_NUMERIC:
  103.                                 if (DateUtil.isCellDateFormatted(cell)) {
  104.                                     System.out.print(cell.getDateCellValue().toString()+" ");
  105.                                     result[i][row.getRowNum()-1] = cell.getDateCellValue();
  106.                                 } else {
  107. //                                  System.out.print(Double.toString(cell.getNumericCellValue())+" ");
  108.                                     result[i][row.getRowNum()-1] = cell.getNumericCellValue();
  109.                                 }
  110.                                 break;
  111.                             case Cell.CELL_TYPE_BLANK:
  112. //                              System.out.print("");
  113.                                 result[i][row.getRowNum()-1] = "";
  114.                                 break;
  115.                             case Cell.CELL_TYPE_BOOLEAN:
  116. //                              System.out.print(Boolean.toString(cell.getBooleanCellValue()));
  117.                                 result[i][row.getRowNum()-1] = Boolean.toString(cell.getBooleanCellValue());
  118.                                 break;
  119.                             }
  120.                         }
  121.                     }
  122.                 }
  123.             }
  124.         }
  125.         return result;
  126.     }
  127. }
');