Requirment – How to read an excel file in Java
Solutions– Well Apache POI is answer.This API will help you a lot.you have to download and add the POI JAR file to your project’s class path. The Apache POI JAR file can be found http://poi.apache.org/download.html
Please note
HSSF (Horrible SpreadSheet Format) – reads and writes Microsoft Excel (XLS) format files.
XSSF (XML SpreadSheet Format) – reads and writes Office Open XML (XLSX) format files.
Following snippet we will use
//.. FileInputStream file = new FileInputStream(new File("C:\\VinayTest.xls")); //Get the workbook instance for XLS file HSSFWorkbook workbook = new HSSFWorkbook(file); //Get first sheet from the workbook HSSFSheet sheet = workbook.getSheetAt(0); //Get iterator to all the rows in current sheet Iterator<Row> rowIterator = sheet.iterator(); //Get iterator to all cells of current row Iterator<Cell> cellIterator = row.cellIterator();
Following is code to read from excel file
public static void main(String[] args) throws IOException { // Location of the source file String sourceFilePath = "C:/Vinay/ApachePoi/TestFile.xls"; FileInputStream fileInputStream = null; // Array List to store the excel sheet data List excelData = new ArrayList(); try { // FileInputStream to read the excel file fileInputStream = new FileInputStream(sourceFilePath); // Create an excel workbook HSSFWorkbook excelWorkBook = new HSSFWorkbook(fileInputStream); // Retrieve the first sheet of the workbook. HSSFSheet excelSheet = excelWorkBook.getSheetAt(0); // Iterate through the sheet rows and cells. // Store the retrieved data in an arrayList Iterator rows = excelSheet.rowIterator(); while (rows.hasNext()) { HSSFRow row = (HSSFRow) rows.next(); Iterator cells = row.cellIterator(); List cellData = new ArrayList(); while (cells.hasNext()) { HSSFCell cell = (HSSFCell) cells.next(); cellData.add(cell); } excelData .add(cellData); } // Print retrieved data to the console for (int rowNum = 0; rowNum < excelData.size(); rowNum++) { List list = (List) excelData.get(rowNum); for (int cellNum = 0; cellNum < list.size(); cellNum++) { HSSFCell cell = (HSSFCell) list.get(cellNum); if(cell.getCellType() == HSSFCell.CELL_TYPE_STRING) { System.out.print(cell.getRichStringCellValue().getString() + " "); } else if(cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) { System.out.print(cell.getNumericCellValue() + " "); } else if(cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) { System.out.println(cell.getBooleanCellValue() + " "); } } System.out.println(""); } } catch (IOException e) { e.printStackTrace(); } finally { if (fileInputStream != null) { fileInputStream.close(); } } } }}
Happy coding with Vinay in techartifact