摘要:本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

前言

迷你图是一种简洁而有效的数据可视化方式,常用于展示趋势和变化。它通常由一组小型的线条或柱状图组成,用于表示数据的变化情况。迷你图的主要特点是占用空间少且易于理解。

迷你图通常被用于数据仪表盘、报告和展示中,以便在有限的空间内展示多个数据集的趋势。通过迷你图,使用者可以快速地分析数据的变化趋势,发现关键信息。今天小编为大家介绍如何在Java中创建Excel迷你图。

1.在Java中创建迷你图

Excel的迷你图一共有三种:

  • 折线图
  • 柱形图
  • 盈亏图

通过下面的代码,可以轻松创建出三种迷你图。

Workbook wb = new Workbook();
IWorksheet sheet = wb.getActiveSheet(); // 定义数据
Object[][] data = new Object[][]
{
{1, -3, 2},
{4, -6, 5},
{7, -9, 8},
{10, 12, -11}
};
sheet.getRange("A1:C4").setValue(data); // 添加迷你图
sheet.getRange("D1:D4").getSparklineGroups().add(SparkType.Line, "A1:C4");
sheet.getRange("E1:E4").getSparklineGroups().add(SparkType.Column, "A1:C4");
sheet.getRange("F1:F4").getSparklineGroups().add(SparkType.ColumnStacked100, "A1:C4");
wb.save("output/sparkline.xlsx");

实现效果如下图所示:

2.在Java中创建迷你图组合

在 Excel 中,创建多个迷你图时,会自动为他们添加一个组合,同一个组合的迷你图会使用相同的设置(如:线型)。当选择一个迷你图时,Excel会把相同组合的迷你图用蓝框同时选中。

而在Java中也提供了对应的 API 可以对已有的迷你图重新创建组合,也可以通过组合来修改迷你图的配置。

(1)对已有的迷你图添加组合

// 创建workbook,并获取当前sheet
Workbook wb = new Workbook();
IWorksheet sheet = wb.getActiveSheet();
// 定义数据区域
Object[][] data = new Object[][]
{
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 },
{ 10, 11, 12 }
};
sheet.getRange("A1:C4").setValue(data);
sheet.getRange("D1:D4").getSparklineGroups().add(SparkType.Line, "A1:C4");
sheet.getRange("F1:H4").setValue(data); // 添加一组新的迷你图
sheet.getRange("J1:J4").getSparklineGroups().add(SparkType.Column, "F1:H4"); // 基于区域"J2"的迷你图设置,创建一个新的组合
sheet.getRange("A1:J4").getSparklineGroups().group(sheet.getRange("J2"));
wb.save("output/sparkline.xlsx");

实现效果如下图所示,可以看到因为新创建了组合,D1:D4的折线迷你图,变成了柱形迷你图。

(2)修改组合的配置和迷你图样式

// 创建workbook,并获取当前sheet
Workbook wb = new Workbook();
IWorksheet sheet = wb.getActiveSheet();
// 定义数据区域
Object[][] data = new Object[][]
{
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 },
{ 10, 11, 12 }
};
sheet.getRange("A1:C4").setValue(data);
// 添加迷你图
sheet.getRange("D1:D4").getSparklineGroups().add(SparkType.Line, "A1:C4");
// 定义日期数据
Object[] date_data = new Object[]
{
new GregorianCalendar(2011, 11, 16),
new GregorianCalendar(2011, 11, 17),
new GregorianCalendar(2011, 11, 18)
};
sheet.getRange("A7:C7").setValue(date_data); // 修改迷你图的配置
ISparklineGroup sparklinegroup = sheet.getRange("D1").getSparklineGroups().get(0);
sparklinegroup.setLineWeight(2.5);
sparklinegroup.getPoints().getMarkers().getColor().setColor(Color.GetRed());
sparklinegroup.getPoints().getMarkers().setVisible(true);
sparklinegroup.getSeriesColor().setColor(Color.GetPurple());
wb.save("output/sparkline.xlsx");

实现效果如下图所示:

总结

以上就是关于迷你图用法的介绍。如果您想进一步了解有关迷你图更多的玩法和技巧,可以参考这个帮助手册,在手册中包含了有关于迷你图更多的用法,无论是初学者还是有经验的专业人士,该帮助手册都将为您提供有价值的指导和帮助。

扩展链接:

从表单驱动到模型驱动,解读低代码开发平台的发展趋势

低代码开发平台是什么?

基于分支的版本管理,帮助低代码从项目交付走向定制化产品开发

打造炫酷效果:用Java优雅地制作Excel迷你图的更多相关文章

  1. Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI

    1.概述 哈,今天给大家带来一个ViewPagerIndicator的制作,相信大家在做tabIndicator的时候,大多数人都用过 TabPageIndicator,并且很多知名APP都使用过这个 ...

  2. JParticles 2.0 发布,打造炫酷的粒子特效

    JParticles 2.0 发布,打造炫酷的粒子特效.不好意思哈,在这么繁花似锦的世界里,标题不得不取得吸引眼球一点哈,不然...还是不啰嗦了,我们进入正题吧 简单介绍一下 JParticles 2 ...

  3. 仿网易/QQ空间视频列表滚动连播炫酷效果

    代码地址如下:http://www.demodashi.com/demo/11201.html 一.准备工作 AndroidStudio 开发环境 需要下载七牛的开源播放器SDK 本例子实现了仿网易/ ...

  4. Android ViewPager 打造炫酷欢迎页

    Android ViewPager 打造炫酷欢迎页 ViewPager是Android扩展v4包中的类,这个类可以让用户切换当前的View.对于这个类的应用场景,稍加修改就可以应用到多个环境下.比如: ...

  5. Photoshop和WPF双剑配合,打造炫酷个性的进度条控件

    现在如果想打造一款专业的App,UI的设计和操作的简便性相当重要.UI设计可以借助Photoshop或者AI等设计工具,之前了解到WPF设计工具Expression Blend可以直接导入PSD文件或 ...

  6. 用AI制作炫酷效果

    PART1:制作第一个效果 步骤一:新建一个800*600的画布. 骤二:从工具栏选“矩形工具”,创建一个800*600的矩形.白色的是画布,浅红色(我的AI之前保留的填充颜色,每个人都不一样)的是你 ...

  7. hexo的next主题个性化教程:打造炫酷网站

    看到有些next主题的网站很炫酷,那么是怎么配置的呢?接下来我会讲一讲如何实现一些炫酷的效果 主要有以下32种: 在右上角或者左上角实现fork me on github 添加RSS 添加动态背景 实 ...

  8. 基于skitter的轮播图炫酷效果,幻灯片的体验

    概述 包含各种炫酷的轮播切换效果,插件小巧,与其他插件无冲突,可用于移动端和PC端 详细 代码下载:http://www.demodashi.com/demo/11939.html 你还在用原生的js ...

  9. GJM :JS + CSS3 打造炫酷3D相册 [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  10. Linux进阶之使用Oh-My-Zsh打造炫酷终端

    Oh My Zsh是基于zsh命令行的一个扩展工具集,提供了丰富的扩展功能.除了功能增强之外,还提供非常丰富的主题.使用Oh-My-Zsh打造酷炫Shell终端的步骤(Deepin系统): 原始终端: ...

随机推荐

  1. TheRoleofSpatialPyramidalPoolinginConvolutionalNeuralNe

    目录 1. 引言 2. 技术原理及概念 2.1. 基本概念解释 2.2. 技术原理介绍 2.3. 相关技术比较 3. 实现步骤与流程 3.1. 准备工作:环境配置与依赖安装 3.2. 核心模块实现 3 ...

  2. Linux系统运维之FastDFS集群部署

    一.简介 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.FastDFS服务端有两个 ...

  3. Python Django Web开发实战

    Python Django全面介绍 Django是一个非常强大的Python Web开发框架,它以"快速开发"和"干净.实用的设计"为设计宗旨.本文将从Djan ...

  4. 如何使用libavcodec将.yuv图像序列编码为.h264的视频码流?

    1.实现打开和关闭输入文件和输出文件的操作 //io_data.cpp static FILE* input_file= nullptr; static FILE* output_file= null ...

  5. k8s部署springboot

    综述 首先介绍发布步骤. 1.从代码仓库下载代码,比如GitLab: 2.接着是进行打包,比如使用Maven: 3.编写Dockerfile文件,把步骤2产生的包制作成镜像: 4.上传步骤3的镜像到远 ...

  6. java协程线程之虚拟线程

    前言 众所周知,java 是没有协程线程的,在我们如此熟知的jdk 1.8时代,大佬们想出来的办法就是异步io,甚至用并行的stream流来实现,高并发也好,缩短事件处理时间也好:大家都在想着自己认为 ...

  7. EasyExcel · 写excel

    原文地址 通用数据生成 后面不会重复写 private List<DemoData> data() { List<DemoData> list = ListUtils.newA ...

  8. SQL Server 配置允许远程连接

    前言 需要别人远程你的数据库,首先需要的是在一个局域网内,或者连接的是同一个路由器,接下来就是具体步骤: 1.首先是要检查SQLServer数据库服务器中是否允许远程链接.其具体操作为: 1. 打开数 ...

  9. salesforce零基础学习(一百二十九)Lead Convertion 有趣的经历

    本篇参考:https://help.salesforce.com/s/articleView?id=000382564&type=1 Lead Convertion 是salesforce中s ...

  10. 【go语言】2.1.3 函数的定义和使用

    在 Go 语言中,函数是一种代码抽象和复用的方式.函数可以接受参数,执行特定的操作,并返回结果. 函数的定义 函数的定义以 func 关键字开始,后面跟着函数名.参数列表.返回值列表(可选)以及函数体 ...