Mapping Java Beans to CSV Using OpenCSV
Last Updated :
09 Dec, 2021
The need to convert Java Beans(Objects) to CSV file arises very commonly and there are many ways to write Bean into CSV file but one of the best ways to map java bean to CSV is by using OpenCSV Library. In OpenCSV there is a class name
StatefulBeanToCsvBuilder which helps to convert Java Beans to CSV.
-
The first task is to add the OpenCSV library into the Project.
-
Mapping JavaBeans to CSV
Below is the step-by-step procedure to map Java Beans to CSV.
-
Create Writer instance for writing data to the CSV file.
Writer writer = Files.newBufferedWriter(Paths.get(file_location));
- Create a List of objects which are needed to be written into the CSV file.
- Using ColumnPositionMappingStrategy map the columns of Created objects, to Column of csv.
This is an optional step. If ColumnPositionMappingStrategy is not used, then object will be written to csv with column name same as attribute name of object.
ColumnPositionMappingStrategy mappingStrategy = new ColumnPositionMappingStrategy();
mappingStrategy.setType(Employee.class);
where Employee is the object to be mapped with CSV.
-
Create object of StatefulBeanToCsv class by calling build method of StatefulBeanToCsvBuilder class after the creation of StatefulBeanToCsvBuilder, with writer object as parameter. According to the requirement the user can also provide:
- ColumnPositionMappingStrategy with the help of withMappingStrategy function of StatefulBeanToCsvBuilder object.
- Separator of generated csv file with the help of withSeparator function of StatefulBeanToCsvBuilder object.
- withQuotechar of generated csv file with the help of withQuotechar function of StatefulBeanToCsvBuilder object.
StatefulBeanToCsv beanToCsv = new StatefulBeanToCsvBuilder(writer)
.withMappingStrategy(mappingStrategy)
. withSeparator('#')
.withQuotechar(CSVWriter.NO_QUOTE_CHARACTER)
.build();
-
After creating object of StatefulBeanToCsv class you can add list of object or object to csv file with the help of write method of StatefulBeanToCsv object.
beanToCsv.write(Employeelist);
Example: In this example, we are going to create the list of Employee Object which has attributes like Name, Age, Company, Salary. Then we will generate a CSV file Employees.csv which contains Employee objects.
Codes:
-
Employee.java
Java
public class Employee {
public String Name, Age, Company, Salary;
public Employee(String name, String age,
String company, String salary)
{
super();
Name = name;
Age = age;
Company = company;
Salary = salary;
}
@Override
public String toString()
{
return "Employee [Name=" + Name + ",
Age=" + Age + ", Company=" + Company + ",
Salary=" + Salary + "]";
}
}
-
BeanToCSV.java
Java
import java.io.FileWriter;
import java.io.Writer;
import java.nio.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
import com.opencsv.bean.ColumnPositionMappingStrategy;
import com.opencsv.bean.StatefulBeanToCsv;
import com.opencsv.bean.StatefulBeanToCsvBuilder;
public class BeanToCSV {
public static void main(String[] args)
{
// name of generated csv
final String CSV_LOCATION = "Employees.csv ";
try {
// Creating writer class to generate
// csv file
FileWriter writer = new
FileWriter(CSV_LOCATION);
// create a list of employee
List<Employee> EmployeeList = new
ArrayList<Employee>();
Employee emp1 = new Employee
("Mahafuj", "24", "HTc", "75000");
Employee emp2 = new Employee
("Aman", "24", "microsoft", "79000");
Employee emp3 = new Employee
("Suvradip", "26", "tcs", "39000");
Employee emp4 = new Employee
("Riya", "22", "NgGear", "15000");
Employee emp5 = new Employee
("Prakash", "29", "Sath", "51000");
EmployeeList.add(emp1);
EmployeeList.add(emp2);
EmployeeList.add(emp3);
EmployeeList.add(emp4);
EmployeeList.add(emp5);
// Create Mapping Strategy to arrange the
// column name in order
ColumnPositionMappingStrategy mappingStrategy=
new ColumnPositionMappingStrategy();
mappingStrategy.setType(Employee.class);
// Arrange column name as provided in below array.
String[] columns = new String[]
{ "Name", "Age", "Company", "Salary" };
mappingStrategy.setColumnMapping(columns);
// Creating StatefulBeanToCsv object
StatefulBeanToCsvBuilder<Employee> builder=
new StatefulBeanToCsvBuilder(writer);
StatefulBeanToCsv beanWriter =
builder.withMappingStrategy(mappingStrategy).build();
// Write list to StatefulBeanToCsv object
beanWriter.write(EmployeeList);
// closing the writer object
writer.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Output:
EmployeeData.csv
CSV file contains:-----
"Mahafuj", "24", "HTc", "75000"
"Aman", "24", "microsoft", "79000"
"Suvradip", "26", "tcs", "39000"
"Riya", "22", "NgGear", "15000"
"Prakash", "29", "Sath", "51000"
Reference: BeanToCsv Official Documentation
Similar Reads
Mapping CSV to JavaBeans Using OpenCSV OpenCSV provides classes to map CSV file to a list of Java-beans. CsvToBean class is used to map CSV data to JavaBeans. The CSV data can be parsed to a bean, but what is required to be done is to define the mapping strategy and pass the strategy to CsvToBean to parse the data into a bean. HeaderColu
4 min read
Reading a CSV file in Java using OpenCSV A Comma-Separated Values (CSV) file is just a normal plain-text file, store data in column by column, and split it by a separator (e.g normally it is a comma â, â). OpenCSV is a CSV parser library for Java. OpenCSV supports all the basic CSV-type operations you are want to do. Java 7 is currently th
7 min read
Writing a CSV file in Java using OpenCSV A Comma-Separated Values (CSV) file is just a normal plain-text file, store data in a column by column, and split it by a separator (e.g normally it is a comma â, â). OpenCSV is a CSV parser library for Java. OpenCSV supports all the basic CSV-type operations you are want to do. Java 7 is currently
5 min read
Spring Boot Batch Processing Using Spring Data JPA to CSV File The Spring Batch is a framework in the Spring Boot ecosystem It can provide a lot of functionalities for Batch processing. The Spring Batch framework simplifies the batch development of applications by providing reliable components and other patterns for common batch processing concerns. Mostly, bat
7 min read
How to Write JSON Array to CSV File using Java? We will see how to read a JSONArray from a JSON file and write the contents to a CSV file using Java. JavaScript Object Notation (JSON) is a standard text-based format for representing structured data that is based on JavaScript object syntax. It is commonly used for transmitting data in web applica
3 min read
Batch Processing - MongoDB to CSV Export using Spring Batch Batch processing is a common requirement while dealing with large volumes of data. Batch processing plays an important role in handling large datasets efficiently using chunks or batches. Spring framework provides a flexible framework for building batch-processing applications in Java. Steps to Expo
5 min read
Opening Existing Excel sheet in Java using Apache POI Apache POI is a powerful API by which one can read, write and modify any Microsoft document like powerpoint, world, or excel. Apache POI have different classes and method to work upon different MS Office Document. POIFS -It's Stand for "Poor Obfuscation Implementation File System". This component i
2 min read
How to Create Hyperlink in Spreadsheet using Java? Apache POI is a popular API that allows programmers to create, modify, and display MS Office files using Java programs. It is an open-source library developed and distributed by Apache Software Foundation to design or modify Microsoft Office files using Java programs. It contains classes and methods
4 min read
Deploy Java Microservices on AWS Elastic Beanstalk AWS Elastic Beanstalk is a fully managed service that simplifies the deployment, operation, and scaling of web applications and services in the AWS Cloud. AWS Elastic Beanstalk is an ideal solution for deploying Spring Boot applications because it provides a straightforward and cost-effective approa
3 min read
How to export HTML table to CSV using JavaScript ? Comma Separated Values or CSV is a type of text file where each value is delimited by a comma. CSV files are very useful for the import and export of data to other software applications.Sometimes while developing web applications, you may come into a scenario where you need to download a CSV file co
6 min read