How to Create Pivot Table in Excel using Java?
Last Updated :
06 Dec, 2023
A pivot table is needed to quickly analyze data of a table with very little effort (and no formulas) and sometimes not everyone has time to look at the data in the table and see what’s going on and use it to build good-looking reports for large data sets in an Excel worksheet. Let's discuss a step-by-step proper explanation to create a pivot table in an Excel file in Java using Free Spire.XLS for Java API.
Requirements to Create Pivot Table in Excel using Java
Firstly, we need to add necessary dependencies to the Maven project including the Free Spire.XLS project before starting to write the code.
How to Install Spire.XLS for Java
By adding the following code to your project's pom.xml file, you can quickly import the JAR file into your program if you use Maven.
XML
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version> </dependency>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>3.9.1</version>
</dependency>
</dependencies>Â Â Â
How to Create a Pivot Table in Excel using Java
Here are the steps for using Java to make a pivot table in Excel.
Step 1: Create a workbookÂ
Workbook workbook = new Workbook();
Step 2: Create a sheetÂ
Worksheet sheet = workbook.getWorksheets().get(0);
Step 3: Add some data to the worksheet in table form.
sheet.getCellRange("A1").setValue("Student Name");
Step 4: Pivot Cache is something that automatically gets generated when you create a Pivot Table. Create an object of PivotCache and add a range.
PivotCache cache = workbook.getPivotCaches().add(dataRange);
Step 5: Create an object of PivotTable to get PivotTable and add table name, Cell Range from where a table is starting to arg1, PivotCache arg2
PivotTable pivotTable = sheet.getPivotTables().add("Pivot Table", sheet.getCellRange("A16"), cache);
Step 6: Create a pivot field to configure the pivot table's fields after that set layout of the pivot table by using the set Axis method and then select type.Â
PivotField pivotField1 = null;
if (pivotTable.getPivotFields().get("Student Name") instanceof PivotField) {
 pivotField1 = (PivotField) pivotTable.getPivotFields().get("Student Name");
 }
 pivotField1.setAxis(AxisTypes.Row);
Step 7: Drag the field to the data area
pivotTable.getDataFields().add(pivotTable.getPivotFields().get("Attendance"), "SUM of Attendance", SubtotalTypes.Sum);
Step 8: Set PivotTable style
pivotTable.setBuiltInStyle(PivotBuiltInStyles.PivotStyleMedium12);
Step 9: Calculate the data
pivotTable.calculateData();
Step 10: Set column width with setColumnWidth method having two parameters, first is columnIndex in int datatype, width size in double datatype.
sheet.setColumnWidth(1, 14);
sheet.setColumnWidth(2, 14);
Step 11: Save workbook by using saveToFile(String fileName, ExcelVersion version)
workbook.saveToFile(workbookName, ExcelVersion.Version2013);
How to write a Java Program to create a pivot table in a spreadsheet
Java
import com.spire.xls.AxisTypes;
import com.spire.xls.CellRange;
import com.spire.xls.ExcelVersion;
import com.spire.xls.PivotBuiltInStyles;
import com.spire.xls.PivotCache;
import com.spire.xls.PivotField;
import com.spire.xls.PivotTable;
import com.spire.xls.SubtotalTypes;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
class GFG {
public static void main(String[] args)
{
// Create a workbook
Workbook workbook = new Workbook();
// Create a sheet
Worksheet sheet = workbook.getWorksheets().get(0);
// Add data to the worksheet in table form
// Header
sheet.getCellRange("A1").setValue("Student Name");
sheet.getCellRange("B1").setValue("Month");
sheet.getCellRange("C1").setValue("Attendance");
// Data
sheet.getCellRange("A2").setValue("Harry");
sheet.getCellRange("A3").setValue("Harry");
sheet.getCellRange("A4").setValue("Harry");
sheet.getCellRange("A5").setValue("Nicole");
sheet.getCellRange("A6").setValue("Nicole");
sheet.getCellRange("A7").setValue("Nicole");
sheet.getCellRange("A8").setValue("Peter");
sheet.getCellRange("A9").setValue("Peter");
sheet.getCellRange("A10").setValue("Peter");
sheet.getCellRange("A11").setValue("Lisa");
sheet.getCellRange("A12").setValue("Lisa");
sheet.getCellRange("A13").setValue("Lisa");
sheet.getCellRange("B2").setValue("January");
sheet.getCellRange("B3").setValue("February");
sheet.getCellRange("B4").setValue("March");
sheet.getCellRange("B5").setValue("January");
sheet.getCellRange("B6").setValue("February");
sheet.getCellRange("B7").setValue("March");
sheet.getCellRange("B8").setValue("January");
sheet.getCellRange("B9").setValue("February");
sheet.getCellRange("B10").setValue("March");
sheet.getCellRange("B11").setValue("January");
sheet.getCellRange("B12").setValue("February");
sheet.getCellRange("B13").setValue("March");
sheet.getCellRange("C2").setValue("25");
sheet.getCellRange("C3").setValue("22");
sheet.getCellRange("C4").setValue("24");
sheet.getCellRange("C5").setValue("24");
sheet.getCellRange("C6").setValue("23");
sheet.getCellRange("C7").setValue("24");
sheet.getCellRange("C8").setValue("22");
sheet.getCellRange("C9").setValue("15");
sheet.getCellRange("C10").setValue("23");
sheet.getCellRange("C11").setValue("25");
sheet.getCellRange("C12").setValue("20");
sheet.getCellRange("C13").setValue("18");
// Add a PivotTable to the worksheet
// Get Range of Table
CellRange dataRange = sheet.getCellRange("A1:C13");
PivotCache cache
= workbook.getPivotCaches().add(dataRange);
PivotTable pivotTable = sheet.getPivotTables().add(
"Pivot Table", sheet.getCellRange("A16"),
cache);
// Drag the fields to the row area
PivotField pivotField1 = null;
if (pivotTable.getPivotFields().get("Student Name")
instanceof PivotField) {
pivotField1
= (PivotField)pivotTable.getPivotFields()
.get("Student Name");
}
pivotField1.setAxis(AxisTypes.Row);
PivotField pivotField2 = null;
if (pivotTable.getPivotFields().get("Month")
instanceof PivotField) {
pivotField2
= (PivotField)pivotTable.getPivotFields()
.get("Month");
}
pivotField2.setAxis(AxisTypes.Row);
// Drag the field to the data area
pivotTable.getDataFields().add(
pivotTable.getPivotFields().get("Attendance"),
"SUM of Attendance", SubtotalTypes.Sum);
// Set PivotTable style
pivotTable.setBuiltInStyle(
PivotBuiltInStyles.PivotStyleMedium12);
// Calculate data
pivotTable.calculateData();
// Set column width
sheet.setColumnWidth(1, 14);
sheet.setColumnWidth(2, 14);
// Save the result file
String workbookName = "Geeks_For_Geeks.xlsx";
workbook.saveToFile(workbookName,
ExcelVersion.Version2013);
System.out.println(workbookName
+ " is written successfully");
}
}
Output
On the console window
When the program is successfully executed.
Geeks_For_Geeks.xlsx is written successfully
Output
Workbook (Excel file)

Similar Reads
MVC Framework Introduction Over the last few years, websites have shifted from simple HTML pages with a bit of CSS to incredibly complex applications with thousands of developers working on them at the same time. To work with these complex web applications developers use different design patterns to lay out their projects, to
6 min read
Best Way to Master Spring Boot â A Complete Roadmap In the corporate world, they say "Java is immortal!". But Why? Java remains one of the major platforms for developing enterprise applications. Enterprise Applications are used by large companies to make money. Those applications have high-reliability requirements and an enormous codebase. According
14 min read
Bash Scripting - If Statement Bash is an interpreter for command languages. It is a default command interpreter on most GNU/Linux systems and is widely available on various operating systems. The name is an abbreviation for Bourne-Again SHell. Scripting enables for the execution of instructions that would otherwise be executed o
15 min read
MS Excel Tutorial - Learn Excel Online Free Excel, one of the most powerful spreadsheet programs for managing large datasets, performing calculations, and creating visualizations for data analysis. Developed and introduced by Microsoft in 1985, Excel is mostly used in analysis, data entry, accounting, and many more data-driven tasks.Now, if y
11 min read
Spring Boot - Architecture Spring Boot is built on top of the core Spring framework. It simplifies and automates Spring-based application development by reducing the need for manual configuration. Spring Boot follows a layered architecture, where each layer interacts with other layers in a hierarchical order. The official Spr
3 min read
How to Create a Shell Script in linux Shell is an interface of the operating system. It accepts commands from users and interprets them to the operating system. If you want to run a bunch of commands together, you can do so by creating a shell script. Shell scripts are very useful if you need to do a task routinely, like taking a backup
7 min read
200 Excel Interview Questions & Answers: Beginner to Expert (2025 Updated) Excel is an essential tool in many industries, and acing an Excel interview requires more than just basic knowledge. Whether you're applying for a data analyst, financial analyst, or administrative role, your ability to work efficiently with Excel can set you apart. In this article, we provide you w
15+ min read
OSI Security Architecture The OSI Security Architecture is internationally recognized and provides a standardized technique for deploying security measures within an organization. It focuses on three major concepts: security attacks, security mechanisms, and security services, which are critical in protecting data and commun
8 min read
Test Plan - Software Testing Software testing is important to make sure applications work properly and meet user needs. A clear and detailed test plan is the foundation of successful testing, guiding everything from creating test cases to fixing issues. In this article, we will break down what a test plan is, why itâs important
15+ min read
X.509 Authentication Service X.509 is a digital certificate that is built on top of a widely trusted standard known as ITU or International Telecommunication Union X.509 standard, in which the format of PKI certificates is defined. X.509 digital certificate is a certificate-based authentication security framework that can be us
3 min read