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