If you want to read Excel file in Java, Apache POI is the library which supports to read/write microsoft documents. Here is the code to read an Excel file.
import java.io.FileInputStream; import java.io.InputStream; import java.util.Iterator; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Row; public class ReadExcel { public static void main(String[] args){ try{ InputStream myxls = new FileInputStream("C:\\exceltest.xls"); HSSFWorkbook wb = new HSSFWorkbook(myxls); HSSFSheet sheet = wb.getSheetAt(0); Iteratorrows = sheet.rowIterator(); System.out.println("Total Rows :: " + sheet.getLastRowNum()); //Iterate over each row while (rows.hasNext()) { HSSFRow row = (HSSFRow) rows.next(); if(checkIfRowEmpty(row)) continue; int minColIndex = row.getFirstCellNum(); int maxColIndex = row.getLastCellNum(); for(int colIndex = minColIndex; colIndex <= maxColIndex; colIndex++) { HSSFCell cell = row.getCell(colIndex); // POI can't recognize empty cells of Excel, so we should create new cells with a blank value if(cell == null) { cell = row.createCell(colIndex); cell.setCellValue(" "); } String value = ""; switch(cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: value = Double.toString(cell.getNumericCellValue()); break; case HSSFCell.CELL_TYPE_BOOLEAN: value = Boolean.toString(cell.getBooleanCellValue()); break; case HSSFCell.CELL_TYPE_BLANK: value = ""; break; case HSSFCell.CELL_TYPE_ERROR: value = ""; break; case HSSFCell.CELL_TYPE_FORMULA: value = ""; break; default: value = cell.getStringCellValue(); break; } System.out.print(value + "|"); } System.out.println(); } } catch(Exception e){ e.printStackTrace(); } } public static boolean checkIfRowEmpty(HSSFRow row) { int minColumIndex = row.getFirstCellNum(); int maxColumnIndex = row.getLastCellNum(); boolean isRowEmpty = true; for(int columIndex = minColumIndex; columIndex <= maxColumnIndex; columIndex++) { HSSFCell cell = row.getCell(columIndex); if(cell == null || cell.toString().trim().isEmpty() || cell.toString().length() == 0){ } else{ isRowEmpty = false; return isRowEmpty; } } return isRowEmpty; } }
No comments:
Post a Comment