In this example, we will take a look at how to read/parse .xlsand .xlsx Excel files using Apache POI Java Library,
POI Maven Dependency
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.2</version>
</dependency>
POI Gradle Dependency
implementation group: 'org.apache.poi', name: 'poi', version: '5.2.2'
implementation group: 'org.apache.poi', name: 'poi-ooxml', version: '5.2.2'
Reading/Parsing Excel file with .xlsx or .xls extension
Sample Excel File: Java Code:import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
/**
* Java Program to read a Excel .xlsx or .xls file
*/
public class ExcelReaderPOIExample {
public static void main(String[] args) {
String excelFileName = "/Users/code2care/Desktop/Students-Details.xlsx";
File excelXlsxFile = new File(excelFileName);
try (FileInputStream fileInputStream = new FileInputStream(excelXlsxFile);
XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream)) {
//reading the 1st tab
XSSFSheet spreadsheet = workbook.getSheetAt(0);
for (Row cells : spreadsheet) {
XSSFRow row = (XSSFRow) cells;
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
if (cell.getCellType() == CellType.NUMERIC) {
System.out.print((int) cell.getNumericCellValue() + "\t");
} else if (cell.getCellType() == CellType.STRING) {
System.out.print(cell.getStringCellValue() + "\t");
} else if(cell.getCellType() == CellType.FORMULA) {
System.out.print(cell.getCellFormula() + "\t");
}
}
System.out.println(""); //break the line
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("Error occurred while reading Excel file!");
}
}
}
Output:
Sr.No Student Name City Age
1 Justin Chicago 23
2 Alex Austin 24
3 Brain New York 21
4 Samantha San Jose 24
5 Tiffany Chicago 23
Facing issues? Have Questions? Post them here! I am happy to answer!
Author Info:
Rakesh (He/Him) has over 14+ years of experience in Web and Application development. He is the author of insightful How-To articles for Code2care.
Follow him on: X
You can also reach out to him via e-mail: rakesh@code2care.org
More Posts related to Java,
- Get the current timestamp in Java
- Java Stream with Multiple Filters Example
- Java SE JDBC with Prepared Statement Parameterized Select Example
- Fix: UnsupportedClassVersionError: Unsupported major.minor version 63.0
- [Fix] Java Exception with Lambda - Cannot invoke because object is null
- 7 deadly java.lang.OutOfMemoryError in Java Programming
- How to Calculate the SHA Hash Value of a File in Java
- Java JDBC Connection with Database using SSL (https) URL
- How to Add/Subtract Days to the Current Date in Java
- Create Nested Directories using Java Code
- Spring Boot: JDBCTemplate BatchUpdate Update Query Example
- What is CA FE BA BE 00 00 00 3D in Java Class Bytecode
- Save Java Object as JSON file using Jackson Library
- Adding Custom ASCII Text Banner in Spring Boot Application
- [Fix] Java: Type argument cannot be of primitive type generics
- List of New Features in Java 11 (JEPs)
- Java: How to Add two Maps with example
- Java JDBC Transition Management using PreparedStatement Examples
- Understanding and Handling NullPointerException in Java: Tips and Tricks for Effective Debugging
- Steps of working with Stored Procedures using JDBCTemplate Spring Boot
- Java 8 java.util.Function and BiFunction Examples
- The Motivation Behind Generics in Java Programming
- Get Current Local Date and Time using Java 8 DateTime API
- Java: Convert Char to ASCII
- Deep Dive: Why avoid java.util.Date and Calendar Classes
More Posts:
- Simple Struts 2 Tutorial in eclipse with tomcat 7 server - Java
- BeanDefinitionStoreException IOException parsing XML document from class path resource [spring.xml] - Java
- Difference between Sublime Text vs Visual Studio Code (VS Code) - Sublime-Text
- How to Get Year from a Date in Java - Java
- 9 Ways to Loop Java Map (HashMap) with Code Examples - Java
- Git: Step-by-Step - How to Push Local Brach to GitHub - Git
- Steps to Compare Two files in Sublime Text Side-by-Side - Sublime-Text
- How to access Trash Folder using Mac Terminal Command - MacOS