`

Java创建含多层分类标签的Excel图表

阅读更多

概述

通过图表能更直观的体现数据的变化趋势。在图表中一个数据可体现在多个数据分类标签下,常见的生成的图表默认含有一种分类标签,如果需要设置多层分类标签则可以参考以下Java代码示例方法。

使用工具:Free Spire.XLS for Java (免费版)

Jar获取及导入:通过官网下载jar包,并解压将lib文件夹下的Spire.Xls.jar文件导入java程序(推荐此方法);或者通过Maven仓库下载导入

 

Java代码示例

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();
    }
}

 

0
2
分享到:
评论

相关推荐

    JAVA的阅读资料11

    在Excel格式中,它可能包含表格、图表、练习或者讲解,帮助学习者理解并掌握相关知识。 以下是基于这些信息可能涵盖的一些Java EE关键知识点: 1. **Servlet与JSP**:Servlet是Java EE中的核心组件,用于接收和...

    JAVA报表解决方案源码

    Java报表库如JFreeChart可以用来创建线图、柱状图、饼图等,源码中会包含如何使用这些库生成图表的代码片段。 8. **动态生成与交互**:Java报表解决方案往往支持动态生成和交互,如根据用户输入参数筛选数据、钻取...

    c++对excel操作

    通过这个库,你可以创建多层嵌套的表格,或者将数据从数据库导入到 Excel。 3. **OpenCV**(非典型选择): 虽然 OpenCV 主要是用于图像处理,但它有一个模块叫做 `opencv_contrib`,其中包含了一个名为 `ximgproc...

    javaReport.zip

    开发者可能需要理解报表引擎的API,学习如何创建动态数据集、定义样式、添加图表和图片等。 8. **部署与集成**:将JavaReport-V3-Enterprise-Released.jar部署到JavaEE应用服务器(如Tomcat、GlassFish、WildFly等...

    JFreeChart教程

    - JFreeChart提供了一系列的类和方法来创建和定制图表,如`CategoryDataset`用于创建分类数据,`JFreeChart`类用于构建整个图表,`ChartFactory`类提供快速创建常见图表类型的工厂方法。 - 图表可以嵌入Java Swing...

    华表的开发和使用(基于JavaEE)

    - 使用Apache POI,可以创建新的Excel文件,写入数据,设置单元格格式,合并单元格,插入图表等。 - 华表可能还需要支持读取Excel数据,这涉及到解析工作表,读取单元格内容,并进行相应的数据处理。 3. **JAVA...

    基于java的JasperReports 报表类库v3.5.zip

    总的来说,Java JasperReports库v3.5版本是一个强大且灵活的报表解决方案,为Java开发者提供了丰富的工具和API来创建和呈现复杂的数据报告。无论是简单的表格还是复杂的多层报告,JasperReports都能轻松应对。通过...

    ireport资料汇总

    3. 高级特性:利用子报表、分组、交叉表等高级功能,可以创建复杂多层的报表。同时,JasperReports支持图表功能,可以创建柱状图、饼图、线图等。 总结,iReport作为JasperReports的前端设计工具,与Swing的集成...

    ireport用户手册

    - 报表结构包括页面、主体、细节、汇总等部分,理解这些部分的职能对于创建有效的多层报表至关重要。 - 用户可以利用内置的SQL查询编辑器与数据库交互,动态生成数据集,为报表提供数据源。 2. **数据源配置**: ...

    ireport5.6.0

    - **表格**:支持行列合并、排序、分组、汇总等功能,可以创建多层的分组结构。 - **图表**:提供多种图表类型,如柱状图、折线图、饼图、散点图等,支持动态数据更新和交互式操作。 - **文本框**:可容纳纯文本...

    skyeye-report是一款高性能的Java报表引擎,提供完善的基于网页的报表设计器.zip

    - **丰富的图表类型**:提供柱状图、饼图、线图、热力图等多种图表,可满足各类数据分析需求。 - **复杂的报表布局**:支持网格布局、自由布局,以及多层子报表,方便构建复杂的报表结构。 - **数据计算与转换**...

    超简单超炫的J2EE报表制作

    水晶报表支持多种数据源,包括数据库、XML、Excel等,允许用户创建定制化的报告布局,如表格、图表、曲线图等。水晶报表的集成能力使其能轻松嵌入到各种应用程序中,如J2EE应用,为用户提供直观的报表展示。 标签中...

    Pentaho Report开发指导

    本文档将引导您逐步了解如何使用Pentaho Report Designer进行报表开发,包括基本操作、父子多层报表的创建以及解决可能出现的问题。 **安装Pentaho Report Designer** 1. 安装过程非常简单,只需将下载的压缩包...

    2021-2022计算机二级等级考试试题及答案No.19159.docx

    16. Excel功能:Excel2000具有强大的计算和数据分析能力,支持复杂的公式和图表制作。 17. Java关键字:wait是Java中的关键字,而new、long和switch也是Java关键字。 18. 数据不一致原因:数据不一致性通常是由于...

    基于Jasperreport动态单元格合并模板

    2. **多层分组**:JasperReport支持多级分组,这意味着可以按照多个字段对数据进行层次化的分类。在JRXML中,可以定义多个`<group>`元素,每个元素代表一个分组级别。分组的顺序决定了层次结构,先定义的分组是高层...

    学生综合素质测评管理系统-毕业设计.zip

    《学生综合素质测评管理系统》是一个基于Java后端技术的毕业设计项目,主要目的是为教育机构提供一个全面、系统的学生综合素质评价管理平台。这个系统不仅适用于毕业生的毕业设计,也适合于课程设计,对于学习和理解...

    程序-问卷调查网页版

    JAVAEE(Java Platform, Enterprise Edition)是Java语言在企业级应用开发中的标准,它包含了多个组件和服务,如Servlet、JSP、EJB、JMS等,用于构建分布式、多层的Web应用程序。 此程序包的核心功能可能包括以下...

    ireport教程

    IReport是Jaspersoft公司开发的一款开源报表设计工具,它允许开发者创建复杂的报表,并且能够与Java应用程序、Web应用以及各种数据库系统无缝集成。本教程将深入探讨IReport及其关联的JasperReport的核心概念和使用...

    iReport 4.8 报表导出工具

    iReport是一款强大的报表设计工具,尤其在版本4.8中,它提供了丰富的功能,使得用户能够轻松地创建、编辑和导出各种类型的报表。这款工具是开源的,基于Java,因此与平台无关,可以在多种操作系统上运行。iReport ...

    润乾报表基本介绍

    此外,它还支持Excel导入,允许业务人员利用已有的模板快速创建报表。 2. 数据模型创新:润乾报表独创的数据模型解决了单元格与数据库字段之间的弱关联问题,打破了传统的行式报表限制,使得行列对称,支持层次扩展...

Global site tag (gtag.js) - Google Analytics