1. Фон спроса
В связи с потребностями характера работы, я часто соприкасаюсь с большим количеством данных и обрабатываю их, чтобы потом сообщить клиенту. Поэтому, чтобы помочь клиентам быстрее и интуитивнее анализировать и понимать эти абстрактные данные, я часто отображаю данные в виде диаграмм. Сегодня я поделюсь с вами методом создания круговых диаграмм и кольцевых диаграмм в документах Excel с использованием кода в программе Java.
2. Jar пакет импорта
Установите бесплатный пакет Spire.Xls.jar через хранилище Maven и настройте код файла pom.xml следующим образом:
Круговая диаграмма

Кольцевая диаграмма

В связи с потребностями характера работы, я часто соприкасаюсь с большим количеством данных и обрабатываю их, чтобы потом сообщить клиенту. Поэтому, чтобы помочь клиентам быстрее и интуитивнее анализировать и понимать эти абстрактные данные, я часто отображаю данные в виде диаграмм. Сегодня я поделюсь с вами методом создания круговых диаграмм и кольцевых диаграмм в документах Excel с использованием кода в программе Java.
2. Jar пакет импорта
Установите бесплатный пакет Spire.Xls.jar через хранилище Maven и настройте код файла pom.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>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
Круговая диаграмма
import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;
import java.awt.*;
public class CreatePieChart {
public static void main(String[] args) {
//Создать объект Workbook
Workbook workbook = new Workbook();
//Получить первый лист
Worksheet sheet = workbook.getWorksheets().get(0);
//Запишите данные диаграммы на лист
sheet.getCellRange("A1").setValue("год");
sheet.getCellRange("A2").setValue("2002");
sheet.getCellRange("A3").setValue("2003");
sheet.getCellRange("A4").setValue("2004");
sheet.getCellRange("A5").setValue("2005");
sheet.getCellRange("B1").setValue("Продажи");
sheet.getCellRange("B2").setNumberValue(4000);
sheet.getCellRange("B3").setNumberValue(6000);
sheet.getCellRange("B4").setNumberValue(7000);
sheet.getCellRange("B5").setNumberValue(8500);
//Установить стиль ячейки
sheet.getCellRange("A1:B1").setRowHeight(15);
sheet.getCellRange("A1:B1").getCellStyle().setColor(Color.darkGray);
sheet.getCellRange("A1:B1").getCellStyle().getExcelFont().setColor(Color.white);
sheet.getCellRange("A1:B1").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);
sheet.getCellRange("A1:B1").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);
sheet.getCellRange("B2:C5").getCellStyle().setNumberFormat("\"$\"#,##0");
//Добавить круговую диаграмму
Chart chart = sheet.getCharts().add(ExcelChartType.Pie);
//Установить область данных диаграммы
chart.setDataRange(sheet.getCellRange("B2:B5"));
chart.setSeriesDataFromRange(false);
//Установить положение диаграммы
chart.setLeftColumn(3);
chart.setTopRow(1);
chart.setRightColumn(11);
chart.setBottomRow(20);
//Установить заголовок диаграммы
chart.setChartTitle("Ежегодные продажи");
chart.getChartTitleArea().isBold(true);
chart.getChartTitleArea().setSize(12);
//Установить метку серии
ChartSerie cs = chart.getSeries().get(0);
cs.setCategoryLabels(sheet.getCellRange("A2:A5"));
cs.setValues(sheet.getCellRange("B2:B5"));
cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);
chart.getPlotArea().getFill().setVisible(false);
//Сохранить документ
workbook.saveToFile("PieChart.xlsx", ExcelVersion.Version2016);
}
}

Кольцевая диаграмма
import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;
import com.spire.xls.charts.ChartSeries;
import java.awt.*;
public class CreateDoughnutChart {
public static void main(String[] args) {
//Создать объект Workbook
Workbook workbook = new Workbook();
//Получить первый лист
Worksheet sheet = workbook.getWorksheets().get(0);
//Получить первый лист
sheet.getCellRange("A1").setValue("страна");
sheet.getCellRange("A2").setValue("Япония");
sheet.getCellRange("A3").setValue("Китай");
sheet.getCellRange("A4").setValue("Соединенные Штаты");
sheet.getCellRange("A5").setValue("Россия");
sheet.getCellRange("B1").setValue("Продажи");
sheet.getCellRange("B2").setNumberValue(6000);
sheet.getCellRange("B3").setNumberValue(8000);
sheet.getCellRange("B4").setNumberValue(9000);
sheet.getCellRange("B5").setNumberValue(8500);
//Установить стиль ячейки
sheet.getCellRange("A1:B1").setRowHeight(15);
sheet.getCellRange("A1:B1").getCellStyle().setColor(Color.darkGray);
sheet.getCellRange("A1:B1").getCellStyle().getExcelFont().setColor(Color.white);
sheet.getCellRange("A1:B1").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);
sheet.getCellRange("A1:B1").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);
sheet.getCellRange("B2:C5").getCellStyle().setNumberFormat("\"$\"#,##0");
//Добавить круговую диаграмму
Chart chart = sheet.getCharts().add(ExcelChartType.Doughnut);
//Установить область данных диаграммы
chart.setDataRange(sheet.getCellRange("A1:B5"));
chart.setSeriesDataFromRange(false);
//Установить положение диаграммы
chart.setLeftColumn(3);
chart.setTopRow(1);
chart.setRightColumn(11);
chart.setBottomRow(20);
//Установить заголовок диаграммы
chart.setChartTitle("Доля рынка");
chart.getChartTitleArea().isBold(true);
chart.getChartTitleArea().setSize(12);
//Установить цвет серии
ChartSeries series = chart.getSeries();
for (int i = 0 ; i < series.size() ; i++) {
ChartSerie cs = series.get(i);
cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasPercentage(true);
}
//Установите положение легенды
chart.getLegend().setPosition(LegendPositionType.Top);
//Сохранить документ
workbook.saveToFile("DoughnutChart.xlsx", ExcelVersion.Version2016);
}
}
