使用POI结合Excel的行列生成雷达图

一、先放最后输出的结果图:

雷达图

二、代码

@Test

public void createRadar() throws IOException {

final String sheetName = "RadarChart";

try (XSSFWorkbook workbook = new XSSFWorkbook()) {

XSSFSheet sheet = workbook.createSheet(sheetName);

for (int i = 0; i < 16; i++) {

XSSFRow row = sheet.createRow(i);

XSSFCell cell = row.createCell(0);

cell.setCellValue(i + "行");

XSSFCell cell1 = row.createCell(1);

cell1.setCellValue(RandomUtils.nextInt(0, 20));

}

XSSFDrawing drawing = sheet.createDrawingPatriarch();

XSSFClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 2, 0, 7, 16);

XSSFChart chart = drawing.createChart(anchor);

CTChart ctChart = chart.getCTChart();

ctChart.addNewAutoTitleDeleted().setVal(false);

// ctChart.addNewPlotVisOnly().setVal(true);

// ctChart.addNewDispBlanksAs().setVal(STDispBlanksAs.GAP);

// ctChart.addNewShowDLblsOverMax().setVal(false);

CTPlotArea ctPlotArea = ctChart.addNewPlotArea();

ctPlotArea.addNewLayout();

// CTShapeProperties ctShapeProperties = ctPlotArea.addNewSpPr();

// ctShapeProperties.addNewNoFill();

// ctShapeProperties.addNewLn().addNewNoFill();

// ctShapeProperties.addNewEffectLst();

CTRadarChart ctRadarChart = ctPlotArea.addNewRadarChart();

// 这两个值应该对应着catAx和valAx

ctRadarChart.addNewAxId().setVal(123456);

ctRadarChart.addNewAxId().setVal(123457);

// 分类标签等是否显示

CTDLbls ctdLbls = ctRadarChart.addNewDLbls();

ctdLbls.addNewShowLegendKey().setVal(false);

ctdLbls.addNewShowVal().setVal(false);

ctdLbls.addNewShowCatName().setVal(false);

ctdLbls.addNewShowSerName().setVal(false);

ctdLbls.addNewShowPercent().setVal(false);

ctdLbls.addNewShowBubbleSize().setVal(false);

// 不允许自定义颜色、以及标记的形状

ctRadarChart.addNewRadarStyle().setVal(STRadarStyle.MARKER);

ctRadarChart.addNewVaryColors().setVal(false);

CTRadarSer ctRadarSer = ctRadarChart.addNewSer();

ctRadarSer.addNewIdx().setVal(0);

ctRadarSer.addNewOrder().setVal(0);

CTLineProperties ctLineProperties = ctRadarSer.addNewSpPr().addNewLn();

ctLineProperties.addNewRound();

ctLineProperties.addNewSolidFill().addNewSchemeClr().setVal(STSchemeColorVal.ACCENT_1);

// 渲染数据

ctRadarSer.addNewCat().addNewStrRef().setF(sheetName + "!$A$1:$A$6");

ctRadarSer.addNewVal().addNewNumRef().setF(sheetName + "!$B$2:$B$6");

CTCatAx ctCatAx = ctPlotArea.addNewCatAx();

ctCatAx.addNewAxId().setVal(123456);

ctCatAx.addNewScaling().addNewOrientation().setVal(MIN_MAX);

ctCatAx.addNewDelete().setVal(false);

ctCatAx.addNewAxPos().setVal(STAxPos.B);

ctCatAx.addNewCrossAx().setVal(123457);

ctCatAx.addNewMajorTickMark().setVal(STTickMark.NONE);

ctCatAx.addNewMinorTickMark().setVal(STTickMark.NONE);

ctCatAx.addNewTickLblPos().setVal(NEXT_TO);

// ctCatAx.addNewCrosses().setVal(STCrosses.AUTO_ZERO);

// ctCatAx.addNewAuto().setVal(true);

// ctCatAx.addNewLblAlgn().setVal(STLblAlgn.CTR);

// ctCatAx.addNewLblOffset().setVal(100);

// ctCatAx.addNewNoMultiLvlLbl().setVal(false);

// spPr

// CTShapeProperties ctShapeProperties = ctCatAx.addNewSpPr();

// ctShapeProperties.addNewNoFill();

// ctShapeProperties.addNewEffectLst();

// CTLineProperties ctLineProperties1 = ctShapeProperties.addNewLn();

// ctLineProperties1.setW(9525);

// ctLineProperties1.setCap(STLineCap.FLAT);

// ctLineProperties1.setCmpd(STCompoundLine.SNG);

// ctLineProperties1.setAlgn(STPenAlignment.CTR);

// CTSchemeColor ctSchemeColor = ctLineProperties1.addNewSolidFill().addNewSchemeClr();

// ctSchemeColor.setVal(STSchemeColorVal.TX_1);

// ctSchemeColor.addNewLumMod().setVal(15000);

// ctSchemeColor.addNewLumOff().setVal(85000);

// txPr

// CTTextBody ctTextBody = ctCatAx.addNewTxPr();

// CTTextCharacterProperties ctTextCharacterProperties = ctTextBody.addNewP().addNewPPr().addNewDefRPr();

// ctTextCharacterProperties.setU(STTextUnderlineType.NONE);

// ctTextCharacterProperties.setStrike(STTextStrikeType.NO_STRIKE);

// ctTextCharacterProperties.setSz(900);

// ctTextCharacterProperties.setB(false);

// ctTextCharacterProperties.setI(false);

// ctTextCharacterProperties.setBaseline(0);

// ctTextCharacterProperties.setKern(1200);

// CTSchemeColor ctSchemeColor = ctTextCharacterProperties.addNewSolidFill().addNewSchemeClr();

// ctSchemeColor.setVal(STSchemeColorVal.TX_1);

// ctSchemeColor.addNewLumMod().setVal(65000);

// ctSchemeColor.addNewLumOff().setVal(35000);

CTValAx ctValAx = ctPlotArea.addNewValAx();

ctValAx.addNewAxId().setVal(123457);

ctValAx.addNewScaling().addNewOrientation().setVal(MIN_MAX);

ctValAx.addNewDelete().setVal(false);

ctValAx.addNewAxPos().setVal(STAxPos.L);

ctValAx.addNewCrossAx().setVal(123456);

ctValAx.addNewMajorTickMark().setVal(STTickMark.NONE);

ctValAx.addNewMinorTickMark().setVal(STTickMark.NONE);

ctValAx.addNewTickLblPos().setVal(NEXT_TO);

// ctValAx.addNewCrosses().setVal(STCrosses.AUTO_ZERO);

// ctValAx.addNewCrossBetween().setVal(STCrossBetween.BETWEEN);

// 设置网格线

CTShapeProperties ctShapeProperties = ctValAx.addNewMajorGridlines().addNewSpPr();

CTLineProperties ctLineProperties1 = ctShapeProperties.addNewLn();

ctLineProperties1.setW(9525);

ctLineProperties1.setCap(STLineCap.FLAT);

ctLineProperties1.setCmpd(STCompoundLine.SNG);

ctLineProperties1.setAlgn(STPenAlignment.CTR);

// 值的纵坐标线,不显示

ctValAx.addNewSpPr().addNewLn().addNewNoFill();

// 值的纵坐标值,不显示

ctValAx.addNewTxPr().addNewP().addNewPPr().addNewDefRPr().addNewNoFill();

System.out.println(ctChart);

FileOutputStream outputStream =

new FileOutputStream("C:\\Users\\user\\Desktop\\out.xlsx");

workbook.write(outputStream);

outputStream.flush();

outputStream.close();

}

}

三、XML结构

以上生成的图表,归根结底是属于XML的一种,通过 RadarChart 的继承关系可以看到,它其实是 XmlObject的一种实现。

RadarChart!$A$1:$A$6

RadarChart!$B$2:$B$6

java 雷达图_POI生成原生Excel-雷达图相关推荐

  1. java实现 移动平均值 复杂度,在EXCEL折线图里增加平均线和上下限|excle统计图怎设置上下限...

    excel折线图怎么插入上下限 以Excel2016版本为例: 1.首先选中数据单元点击"插入"选项. 2击插入图表中的"折线图",将其插入到中. 3.右键点击 ...

  2. java使用POI5.0生成简易Excel工作簿的一种方法

    先贴一下poi相关jar包的链接 https://poi.apache.org/download.html#POI-5.0.0 官网地址 <!-- https://mvnrepository.c ...

  3. [办公软件教程] Excel迷你图在哪里?Excel迷你图怎么设置

    转载请说明来源于"厦门SEO" 本文地址:http://www.96096.cc/Article/160975.html 办公软件教程 Excel表格作为每个人在工作当中必备的办公 ...

  4. poi导出excel文件,并生成原生图表(包括折线图,柱状图,饼状图,面积图)

    前段时间,因为客户需要,要做一个导出excel文件功能,并能生成原生的图表的(不是把图片插入到excel文档),找了很多文档看,也看了很多别人的代码,个人也总结了一下,不足之处,请各位大牛谅解. 需要 ...

  5. java excel 饼图,java 导入导出excle 和 生成柱状图饼状图的demo/excle数据如何转成饼状图...

    在EXCEL中,如何把表格中的数据转换成饼状图? 在Excel中,把中的数据转换状图的操作步骤如下: 想转换的数据源,插入饼状图,Excel会自动根据选择的数据源生成饼状图.接下来,可以自定义饼状图的 ...

  6. java使用poi在word中生成柱状图、折线图、饼图、柱状图+折线图组合图、动态表格、文本替换、图片替换、更新内置Excel数据、更新插入的文本框内容、合并表格单元格;

    本文参考地址:https://blog.csdn.net/wangxiaoyingWXY/article/details/95377533 在参考文章的基础上,增加了扩展.感谢被参考的妹子.另外该博客 ...

  7. Spire.XLS 图表系列教程:C# 如何不使用工作数据创建Excel图表以及Excel雷达图

    更多资源查看:Spire.XLS工作表教程 | Spire.Doc系列教程 | Spire.PDF系列教程 [下载Spire.XLS最新试用版] Spire.XLS for .NET 是一款专业的 . ...

  8. python雷达和柱形图_Python Pygal常见数据图(折线图、柱状图、饼图、点图、仪表图和雷达图)详解...

    Pygal 同样支持各种不同的数据图,比如饼图.折线图等.Pygal 的设计很好,不管是创建哪种数据图,Pygal 的创建方式基本是一样的,都是先创建对应的数据图对象,然后添加数据,最后对数据图进行配 ...

  9. 多级雷达图绘制python_Python 详解雷达图/蛛网图

    雷达图-pyecharts 蛛网图,最早知道是在玩FIFA游戏的时候,球员的能力用蛛网图来表示与比较,那时觉得非常新鲜.后来,在实际的工作中,其实很少用到:一方面,直接提供蛛网图的工具少:另一方面,过 ...

最新文章

  1. 条款02:尽量以const,enum,inline代替#define
  2. TF之LSTM:基于tensorflow框架自定义LSTM算法实现股票历史(1990~2015数据集,6112预测后100+单变量最高)行情回归预测
  3. IO虚拟化——virtio 原理
  4. 内网穿透工具ngrok的使用
  5. 相对熵(relative entropy或 Kullback-Leibler divergence,KL距离)的java实现(三)
  6. 下面介绍一个开源的OCR引擎Tesseract2。值得庆幸的是虽然是开源的但是它的识别率较高,并不比其他引擎差劲。网上介绍Tessnet2也是当时时间排名第三的识别引擎,只是后来慢慢不维护了,目前是G
  7. oracle使用 union all 用自增序列_值得收藏的Oracle数据库性能优化
  8. Repository 返回 IQueryable?还是 IEnumerable?
  9. Linux在U盘安装python的过程详解
  10. 简历人才库系统_人才招聘简历的3种选择
  11. 研究员发现 Google Cloud 项目中的 SSRF 漏洞,获1万美元奖金
  12. 解决在使用CSS3制作不间断轮播图中 收尾连接后Interval 延时问题
  13. 计算机录制音乐时减少环境干扰,个人想录音?怎样打造录音棚呢?
  14. 电机-PID学习-位置速度串级控制
  15. 实验十OSPF路由聚合
  16. Spark独到见解--Transformation算子总结
  17. CAD一键统计所有线段长度
  18. 智能家居系统解决方案
  19. mysql操作语句类型DQL\DML\DDL\DCL
  20. java显示数据库_java查询数据库中的数据并显示

热门文章

  1. 原生JS写仿淘宝搜索框(代码+效果),可实现3级搜索哦!
  2. 百度地图JavaScript API GL1.0给折线添加箭头
  3. babe的l使用步骤记录
  4. 【QQ空间】网名大全
  5. 互联网公司的岗位英文简写
  6. Dynamics 365 设置Postman environment For WebAPI
  7. Python学习 Day26 JS循环语句(二)
  8. 在线文档预览解决方案-Office Web Apps在Windows Server 2008 R2部署教程
  9. 弥散磁共振成像技术:在脑内的应用
  10. 八、QOS队列调度与报文丢弃