Линейная диаграмма — это основной тип диаграмм, который отображает тенденции и поведение во времени. Он отображает информацию в виде серии точек данных, соединенных отрезками прямых линий. В этой статье мы расскажем, как создать линейную диаграмму в Excel с помощью Free Spire.XLS for Java.
Импорт зависимостей (2 метода)
1# Скачайте бесплатную библиотеку и распакуйте ее, затем добавьте файл Spire.Xls.jar в свой проект в качестве зависимости.
2# Непосредственно добавьте зависимость jar в проект maven, добавив следующие конфигурации в pom.xml.
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>5.1.0</version>
</dependency>
</dependencies>
Код примера
Метод Worksheet.getCharts().add(ExcelChartType.Line), предлагаемый Free Spire.XLS for Java, позволяет вставить линейный график в рабочий лист Excel. Полный код примера показан ниже.
import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;
import java.awt.*;
public class CreateLineChart {
public static void main(String []args){
//Create a Workbook instance
Workbook workbook = new Workbook();
//Get the first worksheet
Worksheet sheet = workbook.getWorksheets().get(0);
//Set sheet name
sheet.setName("Line Chart");;
//Hide gridlines
sheet.setGridLinesVisible(false);
//Add some data to the worksheet
sheet.getRange().get("A1").setValue("Country");
sheet.getRange().get("A2").setValue("Cuba");
sheet.getRange().get("A3").setValue("Mexico");
sheet.getRange().get("A4").setValue("France");
sheet.getRange().get("A5").setValue("German");
sheet.getRange().get("B1").setValue("Jun");
sheet.getRange().get("B2").setNumberValue(3300);
sheet.getRange().get("B3").setNumberValue(2300);
sheet.getRange().get("B4").setNumberValue(4500);
sheet.getRange().get("B5").setNumberValue(6700);
sheet.getRange().get("C1").setValue("Jul");
sheet.getRange().get("C2").setNumberValue(7500);
sheet.getRange().get("C3").setNumberValue(2900);
sheet.getRange().get("C4").setNumberValue(2300);
sheet.getRange().get("C5").setNumberValue(4200);
sheet.getRange().get("D1").setValue("Aug");
sheet.getRange().get("D2").setNumberValue(7700);
sheet.getRange().get("D3").setNumberValue(6900);
sheet.getRange().get("D4").setNumberValue(8400);
sheet.getRange().get("D5").setNumberValue(4200);
sheet.getRange().get("E1").setValue("Sep");
sheet.getRange().get("E2").setNumberValue(8000);
sheet.getRange().get("E3").setNumberValue(7200);
sheet.getRange().get("E4").setNumberValue(8300);
sheet.getRange().get("E5").setNumberValue(5600);
//Set font and fill color for specified cells
sheet.getRange().get("A1:E1").getStyle().getFont().isBold(true);
sheet.getRange().get("A1:E1").getStyle().setKnownColor(ExcelColors.LightGreen1);;
sheet.getRange().get("A2:A5").getStyle().setKnownColor(ExcelColors.LightYellow);
//Set cell borders
sheet.getRange().get("A1:E5").borderInside(LineStyleType.Thin, Color.BLUE);
sheet.getRange().get("A1:E5").borderAround(LineStyleType.Medium, Color.BLACK);
//Set number format
sheet.getRange().get("B2:D5").getStyle().setNumberFormat(""$"#,##0");
//Add a line chart to the worksheet
Chart chart = sheet.getCharts().add(ExcelChartType.Line);
//Set data range for the chart
chart.setDataRange(sheet.getRange().get("A1:E5"));
//Set position of the chart
chart.setLeftColumn(1);
chart.setTopRow(6);
chart.setRightColumn(11);
chart.setBottomRow(29);
//Set and format chart title
chart.setChartTitle("Sales Report");
chart.getChartTitleArea().isBold(true);
chart.getChartTitleArea().setSize(12);
//Set and format category axis title
chart.getPrimaryCategoryAxis().setTitle("Month");
chart.getPrimaryCategoryAxis().getFont().isBold(true);
chart.getPrimaryCategoryAxis().getTitleArea().isBold(true);
//Set and format value axis title
chart.getPrimaryValueAxis().setTitle("Sales (in USD)");
chart.getPrimaryValueAxis().hasMajorGridLines(false);
chart.getPrimaryValueAxis().getTitleArea().setTextRotationAngle(-90);
chart.getPrimaryValueAxis().setMinValue(1000);
chart.getPrimaryValueAxis().getTitleArea().isBold(true);
//Loop through the data series of the chart
for(ChartSerie cs : (Iterable<ChartSerie>) chart.getSeries())
{
cs.getFormat().getOptions().isVaryColor(true);
//Show data labels for data points
cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);
}
//Set position of chart legend
chart.getLegend().setPosition(LegendPositionType.Top);
//Save the result file
workbook.saveToFile("LineChart.xlsx", ExcelVersion.Version2016);
}
}
Документ результата