Java to create Excel charts with multi-layer classification and labeling

By more intuitive trends reflect the data in the chart. In the chart data may be embodied in a plurality of data classification tags, commonly resulting chart contains a default classification label, if necessary classification tag may be provided multiple layers Java code with reference to the following example methods.

Use tools: as Free Spire.XLS for the Java (free version)
Jar acquisition and import: through the official website to download jar package , and extract the import lib folder Spire.Xls.jar java program files (Recommended method); or by Maven Download import warehouse .

Java code examples

import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;

import java.awt.*;

public class MultiLevelCategoryLabels {
    public static void main(String[] args){
        //创建Workbook实例,获取工作表
        Workbook wb = new Workbook();
        Worksheet sheet = wb.getWorksheets().get(0);

        //写入数据到工作表
        sheet.getCellRange("A2").setText("出口前");
        sheet.getCellRange("A5").setText("出口后");
        sheet.get("B1").setText("年份");
        sheet.getCellRange("B2").setText("2017年");
        sheet.getCellRange("B6").setText("2018年");
        sheet.getCellRange("C1").setText("季度");
        sheet.getCellRange("C2").setText("1季度");
        sheet.getCellRange("C3").setText("2季度");
        sheet.getCellRange("C4").setText("3季度");
        sheet.getCellRange("C5").setText("4季度");
        sheet.getCellRange("C6").setText("1季度");
        sheet.getCellRange("C7").setText("2季度");
        sheet.getCellRange("C8").setText("3季度)");
        sheet.getCellRange("C9").setText("4季度");
        sheet.getCellRange("D1").setText("季度产量\n(万吨)");
        sheet.getCellRange("D2").setValue("1.56");
        sheet.getCellRange("D3").setValue("2.3");
        sheet.getCellRange("D4").setValue("3.21");
        sheet.getCellRange("D5").setValue("3.5");
        sheet.getCellRange("D6").setValue("4.8");
        sheet.getCellRange("D7").setValue("5.2");
        sheet.getCellRange("D8").setValue("5.79");
        sheet.getCellRange("D9").setValue("5.58");

        //合并单元格,设置单元格对齐方式
        sheet.getCellRange("A2:A4").merge();
        sheet.getCellRange("A5:A9").merge();
        sheet.getCellRange("B2:B5").merge();
        sheet.getCellRange("B6:B9").merge();
        sheet.getCellRange("A1:D9").getStyle().setHorizontalAlignment(HorizontalAlignType.Center);
        sheet.getCellRange("A1:D9").getStyle().setVerticalAlignment(VerticalAlignType.Center);

        //添加柱状图表
        Chart chart = sheet.getCharts().add(ExcelChartType.LineMarkers);
        chart.setChartTitle("季度产量(万吨)");//设置图表标题
        chart.getPlotArea().getFill().setFillType(ShapeFillType.NoFill); //不填充绘图区域(默认填充灰色)
        chart.getLegend().delete();//删除图例

        //指定柱状图表在工作表中的位置及宽度
        chart.setLeftColumn(5);
        chart.setTopRow(1);
        chart.setRightColumn(14);

        //设置图表系列数据来源
        chart.setDataRange(sheet.getCellRange("D2:D9"));
        chart.setSeriesDataFromRange(false);
        chart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().hasValue();
        chart.getSeries().get(0).getFormat().getLineProperties().setColor(new Color(123,104,238));

        //设置系列分类标签数据来源
        ChartSerie serie = chart.getSeries().get(0);
        serie.setCategoryLabels(sheet.getCellRange("A2:C9"));

        //显示多层分类标签
        chart.getPrimaryCategoryAxis().setMultiLevelLable(true);

        //保存文档
        wb.saveToFile("output.xlsx", ExcelVersion.Version2013);
        wb.dispose();
    }
}

Java to create Excel charts with multi-layer classification and labeling

Guess you like

Origin blog.51cto.com/eiceblue/2477261