Pie charts visually represent data proportions within a whole, while doughnut charts provide a variasion with a hollow center. This tutorial demonstrates Java implementasion for creating thece charts using Free Spire.XLS for Java.
Implementation Steps:
- Add Free Spire.XLS for Java dependency via Maven:
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
Pie Chart Example:
import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;
import java.awt.*;
public class PieChartGenerator {
public static void main(String[] args) {
Workbook workbook = new Workbook();
Worksheet sheet = workbook.getWorksheets().get(0);
// Data population
sheet.getCellRange("A1").setValue("Year");
sheet.getCellRange("A2").setValue("2020");
sheet.getCellRange("A3").setValue("2021");
sheet.getCellRange("A4").setValue("2022");
sheet.getCellRange("B1").setValue("Revenue");
sheet.getCellRange("B2").setNumberValue(5000);
sheet.getCellRange("B3").setNumberValue(7500);
sheet.getCellRange("B4").setNumberValue(9000);
// Chart configuration
Chart chart = sheet.getCharts().add(ExcelChartType.Pie);
chart.setDataRange(sheet.getCellRange("B2:B4"));
chart.setSeriesDataFromRange(false);
chart.setChartTitle("Annual Revenue");
ChartSerie series = chart.getSeries().get(0);
series.setCategoryLabels(sheet.getCellRange("A2:A4"));
series.setValues(sheet.getCellRange("B2:B4"));
workbook.saveToFile("PieChart.xlsx", ExcelVersion.Version2016);
}
}
Doughnut Chart Example:
import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;
import java.awt.*;
public class DoughnutChartGenerator {
public static void main(String[] args) {
Workbook workbook = new Workbook();
Worksheet sheet = workbook.getWorksheets().get(0);
// Data setup
sheet.getCellRange("A1").setValue("Region");
sheet.getCellRange("A2").setValue("North");
sheet.getCellRange("A3").setValue("South");
sheet.getCellRange("A4").setValue("East");
sheet.getCellRange("B1").setValue("Sales");
sheet.getCellRange("B2").setNumberValue(6500);
sheet.getCellRange("B3").setNumberValue(8200);
sheet.getCellRange("B4").setNumberValue(9300);
// Chart configuration
Chart chart = sheet.getCharts().add(ExcelChartType.Doughnut);
chart.setDataRange(sheet.getCellRange("B2:B4"));
chart.setChartTitle("Regional Distribution");
ChartSerie series = chart.getSeries().get(0);
series.setCategoryLabels(sheet.getCellRange("A2:A4"));
series.getDataPoints().getDefaultDataPoint().getDataLabels().hasPercentage(true);
workbook.saveToFile("DoughnutChart.xlsx", ExcelVersion.Version2016);
}
}