简单饼图:

    /*** 创建饼图(xlsx格式excel)* @param sheetAt 工作表*/private void createPie(XSSFSheet sheetAt) {// 创建一个画布Drawing<?> drawing = sheetAt.createDrawingPatriarch();//设置画布在excel工作表的位置ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 4, 2, 8, 15);// 创建一个chart对象Chart chart = drawing.createChart(anchor);CTChart ctChart = ((XSSFChart) chart).getCTChart();CTPlotArea ctPlotArea = ctChart.getPlotArea();// 创建圆环图CTPieChart ctPieChart = ctPlotArea.addNewPieChart();CTBoolean ctBoolean = ctPieChart.addNewVaryColors();// 允许自定义颜色ctBoolean.setVal(true);// 设置图表标题CTTitle title = ctChart.addNewTitle();//选择图表标题所在位置,此时titleRange不是单元格内容,而是 --》 '工作表名'!$A$2String titleRange = new CellRangeAddress(0, 0, 0, 0).formatAsString(sheetAt.getSheetName(), true);title.addNewTx().addNewStrRef().setF(titleRange);// 创建序列,并且设置选中区域CTPieSer ctPieSer = ctPieChart.addNewSer();// 设置横坐标区CTAxDataSource cttAxDataSource = ctPieSer.addNewCat();CTStrRef ctStrRef = cttAxDataSource.addNewStrRef();String axisDataRange = new CellRangeAddress(1, 4, 0, 0).formatAsString(sheetAt.getSheetName(), true);ctStrRef.setF(axisDataRange);// 数据区域CTNumDataSource ctNumDataSource = ctPieSer.addNewVal();CTNumRef ctNumRef = ctNumDataSource.addNewNumRef();// 选第1-6行,第1-3列作为数据区域 //1 2 3String numDataRange = new CellRangeAddress(1, 4, 1, 1).formatAsString(sheetAt.getSheetName(),true);ctNumRef.setF(numDataRange);// 设置标签格式CTDLbls newDLbls = ctPieSer.addNewDLbls();
//      newDLbls.setShowLegendKey(ctBoolean);newDLbls.setShowVal(ctBoolean);
//      newDLbls.setShowCatName(ctBoolean);//显示横坐标(图注)newDLbls.setShowPercent(ctBoolean);// 显示百分比newDLbls.setShowBubbleSize(ctBoolean);// 显示纵坐标(数量)newDLbls.setShowLeaderLines(ctBoolean);// 显示线// legend图注CTLegend ctLegend = ctChart.addNewLegend();ctLegend.addNewLegendPos().setVal(STLegendPos.B);//将图注放在下面(Bottom)ctLegend.addNewOverlay().setVal(false);// 显示图注但不与图表重叠}

效果:

简单折线图:

未完待续

设置标题颜色、字体大小等:

CTTitle ctTitle = ctChart.addNewTitle();
ctTitle.addNewOverlay().setVal(false);// true时与饼图重叠
ctTitle.addNewTx().addNewRich().addNewBodyPr();
CTTextBody rich = ctTitle.getTx().getRich();
rich.addNewLstStyle();
CTRegularTextRun newR = rich.addNewP().addNewR();
newR.setT(sheetName);
newR.addNewRPr().setB(false);
XmlBoolean xmlBoolean = XmlBoolean.Factory.newInstance();
xmlBoolean.setStringValue("0");
newR.getRPr().xsetB(xmlBoolean);//是否加粗
//newR.getRPr().setLang("zh-CN");
//newR.getRPr().setAltLang("en-US");
newR.getRPr().setSz(1400);//字体大小

设置饼图的每个块的颜色:

// 创建序列,并且设置选中区域
CTPieSer ctPieSer = ctPieChart.addNewSer();
// 设置区域颜色
for(int i=0;i<pies.size();i++) {CTDPt dPt = ctPieSer.addNewDPt();STHexBinary3 hex=STHexBinary3.Factory.newInstance();if(i==0) {hex.setStringValue("5B9BD5");}else {hex.setStringValue(pies.get(i).getColor());//color为颜色的十六进制去除#}dPt.addNewIdx().setVal(i);dPt.addNewSpPr().addNewSolidFill().addNewSrgbClr().xsetVal(hex);
}

设置折线的颜色:

CTLineSer ctLineSer = ctLineChart.addNewSer();
STHexBinary3 hex = STHexBinary3.Factory.newInstance();
if (i == 0) {//我这里是画了三条折线所以设置了三种颜色hex.setStringValue("92D050");
} else if (i == 1) {hex.setStringValue("FFFF00");
} else if (i == 2) {hex.setStringValue("FF0000");
}
ctLineSer.addNewSpPr().addNewLn().addNewSolidFill().addNewSrgbClr().xsetVal(hex);

设置纵坐标

// val axis
CTValAx ctValAx = ctPlotArea.addNewValAx();
ctValAx.addNewAxId().setVal(123457); // id of the val axis
ctScaling = ctValAx.addNewScaling();
ctScaling.addNewOrientation().setVal(STOrientation.MIN_MAX);// 设置坐标轴从小到大从下往上排列
ctScaling.addNewMin().setVal(minDiameter);// 设置纵坐标最小值
ctScaling.addNewMax().setVal(maxDiameter);// 设置纵坐标最大值
ctValAx.addNewAxPos().setVal(STAxPos.L);
ctValAx.addNewCrossAx().setVal(123456); // id of the cat axis
ctValAx.addNewTickLblPos().setVal(STTickLblPos.NEXT_TO);
ctValAx.addNewMajorGridlines().addNewSpPr();// 设置网格
//ctValAx.addNewMajorUnit().setVal(0.01);//设置主要刻度线之间距离为0.01
ctValAx.addNewMajorTickMark().setVal(STTickMark.NONE);// 设置主要刻度线类型无;(Major:主要刻度线 Minor:次要刻度线)
//设置纵坐标标题
//ctValAx.addNewTitle().addNewTx().addNewStrRef()
//.setF(new CellRangeAddress(1, 1, 6, 6).formatAsString(sheetAt.getSheetName(), true));ctValAx.addNewSpPr().addNewLn().addNewNoFill();

poi画饼图、折线图等图表和设置颜色字体等相关推荐

  1. VBA,单元格处理,数据复制,格式设置,折线图,图表属性设置

    首先说一下.xlsm文件和.xlsx文件的区别: .xlsx文件只能存储数据,不能存储对数据进行处理的VB代码,而.xlsm文件既可以存储数据,又可以存储代码. 新建一个.xlsm文件(打开.xlsx ...

  2. Poi 如何使用Java和POI技术生成折线图,柱状图,饼状图导出到word文档

    这篇文章主要介绍POI生成图表并导出word文档的基本操作.主要介绍三种图表:折线图.柱状图.饼状图. 一.效果展示 使用Java和POI技术生成的折线图,柱状图,饼状图的效果如下图所示: 二.环境准 ...

  3. 画Excel折线图的一点记录

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.画Excel折线图的一点记录 二.步骤 提示:以下是本篇文章正文内容,下面案例可供参考 一.画Excel折线图的一点记录 ...

  4. matplotlib画的折线图

    文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼:我热爱编程.热爱算法.热爱开源.所有源码在我的个人github :这博客是记录我学习的点点滴滴,如果您对 Python.Java.AI ...

  5. 蓝色数据分析关系折线图表格图表合集PPT模板

    模板介绍 精美PPT模板设计,蓝色数据分析关系折线图表格图表合集PPT模板.一套可视图表幻灯片模板,内含青色,黑色多种配色,精美风格设计,动态播放效果,精美实用. 一份设计精美的PPT模板,可以让你在 ...

  6. python_pyecharts画三维折线图

    1.摘要 本文主要讲解:使用python中的pyecharts画三维折线图 主要思路: 将数据处理成[[x-],[y-],[z-]]的形式 使用Line3D函数渲染 2.数据介绍 数据为简单的三维数据 ...

  7. python plt 画动态折线图

    python plt 画动态折线图 # coding=utf-8import matplotlib.pyplot as plt import numpy as npdef main():plt_lis ...

  8. echarts柱状图 饼图 折线图

    最近大屏项目里做的   首先看看效果 这几个图 我将其标为七个部分 下方成为echarts1,echarts2往后类推  有需要 可以直接拷贝下方代码 推荐一个朋友最近发我的echarts图形地址  ...

  9. python简单代码画曲线图教程-用Python画论文折线图、曲线图?几个代码模板轻松搞定!...

    前言 这几天在搞论文图,唉说实话抠图这种东西真能逼死人.坐在电脑前抠上一天越看越丑,最后把自己丑哭了-- 到了画折线图分析的时候,在想用哪些工具的时候.首先否决了excel,读书人的事,怎么能用exc ...

最新文章

  1. 【Cocosd2d实例教程二】地图编辑器Tiled的安装使用
  2. 【华为云技术分享】云小课 | 初识HiLens Kit,解锁更多智慧应用场景
  3. 赣南师范学院数学竞赛培训第10套模拟试卷参考解答
  4. asp.net中读取数据库中的数据可以使用DataReader和DataSet 2种方式(初学者望大家不要笑我)...
  5. lnmp升级PHP环境
  6. html中怎么加入动态图片,视频加动态水印 怎么在视频画面中添加一个gif动态图片水印...
  7. Hybrid Astar 算法剖析和实现(二)
  8. php版ueditor配置_ThinkPHP配置UEditor
  9. 如何使用Windows10自带的photo应用给视频添加字幕
  10. 小志志和小峰峰的日常(SG函数)
  11. 第8节_数据筛选过滤
  12. 百万册热销书《考试脑科学》续作!每个家长都应该买的一本书
  13. spring boot 獲取屏幕寬度_Redmi K30S至尊纪念版的屏幕有多好?有些吓人
  14. 中星9号卫星PK中星6B+鑫诺3号组合
  15. 如何把下载好的歌曲进行剪切
  16. Flutter入门实战:从0到1仿写web版掘金App
  17. Linux Mint 19 下体验Vagrant +VirtualBox
  18. nested exception is org.apache.ibatis.binding.BindingException:
  19. 【墨天轮专访第四期】华为云GaussDB苏光牛:发挥生态优势,培养应用型DBA
  20. 旧电脑装html5,5年以上旧电脑如何升级

热门文章

  1. 基于SSM框架的图书馆借阅管理系统
  2. python opencv根据颜色进行目标检测
  3. WordArt与everything联用生成含中文的词云
  4. BPMN2.0 泳池与泳道
  5. 2020年浙大计算机考研答疑
  6. 关于Python可视化Dash工具
  7. ios禁止背景弹性滑动
  8. Web —— 单页面和多页面模式
  9. 驱动篇 -- PMOS管应用
  10. JAVA-20 从前端传数据到数据库