具体参考:POI EXCEL 图表、折线图、条形图,柱状图、饼图、散点图_小百菜的博客-CSDN博客_poi 图表

生成柱状图示例 :

package com.demo.test;import java.io.FileOutputStream;
import java.io.IOException;import org.apache.poi.xddf.usermodel.XDDFColor;
import org.apache.poi.xddf.usermodel.XDDFSolidFillProperties;
import org.apache.poi.xddf.usermodel.chart.AxisCrossBetween;
import org.apache.poi.xddf.usermodel.chart.AxisCrosses;
import org.apache.poi.xddf.usermodel.chart.AxisPosition;
import org.apache.poi.xddf.usermodel.chart.BarDirection;
import org.apache.poi.xddf.usermodel.chart.ChartTypes;
import org.apache.poi.xddf.usermodel.chart.LegendPosition;
import org.apache.poi.xddf.usermodel.chart.XDDFBarChartData;
import org.apache.poi.xddf.usermodel.chart.XDDFCategoryAxis;
import org.apache.poi.xddf.usermodel.chart.XDDFCategoryDataSource;
import org.apache.poi.xddf.usermodel.chart.XDDFChartLegend;
import org.apache.poi.xddf.usermodel.chart.XDDFDataSourcesFactory;
import org.apache.poi.xddf.usermodel.chart.XDDFNumericalDataSource;
import org.apache.poi.xddf.usermodel.chart.XDDFValueAxis;
import org.apache.poi.xssf.usermodel.XSSFChart;
import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
import org.apache.poi.xssf.usermodel.XSSFDrawing;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTPlotArea;public class ApachePoiBarChart {public static void main(String[] args) throws IOException {XSSFWorkbook wb = new XSSFWorkbook();String sheetName = "Sheet1";FileOutputStream fileOut = null;try {XSSFSheet sheet = wb.createSheet(sheetName);// 创建一个画布XSSFDrawing drawing = sheet.createDrawingPatriarch();// 前四个默认0,[0,5]:从0列5行开始;[7,26]:到7列26行结束// 默认宽度(14-8)*12XSSFClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 0, 5, 7, 26);// 创建一个chart对象XSSFChart chart = drawing.createChart(anchor);// 标题chart.setTitleText("地区排名前七的国家");// 标题覆盖chart.setTitleOverlay(false);// 图例位置XDDFChartLegend legend = chart.getOrAddLegend();legend.setPosition(LegendPosition.TOP);// 分类轴标(X轴),标题位置XDDFCategoryAxis bottomAxis = chart.createCategoryAxis(AxisPosition.BOTTOM);bottomAxis.setTitle("国家");// 值(Y轴)轴,标题位置XDDFValueAxis leftAxis = chart.createValueAxis(AxisPosition.LEFT);leftAxis.setTitle("面积和人口");// CellRangeAddress(起始行号,终止行号, 起始列号,终止列号)// 分类轴标(X轴)数据,单元格范围位置[0, 0]到[0, 6]// XDDFDataSource<String> countries = XDDFDataSourcesFactory.fromStringCellRange(sheet, new CellRangeAddress(0, 0, 0, 6));XDDFCategoryDataSource countries = XDDFDataSourcesFactory.fromArray(new String[] { "俄罗斯", "加拿大", "美国", "中国", "巴西", "澳大利亚", "印度" });// 数据1,单元格范围位置[1, 0]到[1, 6]// XDDFNumericalDataSource<Double> area = XDDFDataSourcesFactory.fromNumericCellRange(sheet, new CellRangeAddress(1, 1, 0, 6));XDDFNumericalDataSource<Integer> area = XDDFDataSourcesFactory.fromArray(new Integer[] { 17098242, 9984670, 9826675, 9596961, 8514877, 7741220, 3287263 });// 数据2,单元格范围位置[2, 0]到[2, 6]// bar:条形图,XDDFBarChartData bar = (XDDFBarChartData) chart.createData(ChartTypes.BAR, bottomAxis, leftAxis);leftAxis.setCrosses(AxisCrosses.AUTO_ZERO);leftAxis.setCrossBetween(AxisCrossBetween.BETWEEN);// 设置为可变颜色bar.setVaryColors(true);// 条形图方向,纵向/横向:纵向bar.setBarDirection(BarDirection.COL);// 图表加载数据,条形图1XDDFBarChartData.Series series1 = (XDDFBarChartData.Series) bar.addSeries(countries, area);// 条形图例标题series1.setTitle("面积", null);byte[] cbyte = new byte[] { (byte) 0, (byte) 255, (byte) 255 };XDDFSolidFillProperties fill = new XDDFSolidFillProperties(XDDFColor.from(cbyte));// XDDFSolidFillProperties fill = new XDDFSolidFillProperties(XDDFColor.from(PresetColor.RED));// 条形图,填充颜色series1.setFillProperties(fill);// 图表加载数据,条形图2CTPlotArea plotArea = chart.getCTChart().getPlotArea();plotArea.getValAxArray(0).addNewMajorGridlines();// 网格线// 绘制chart.plot(bar);// 堆积条形图,将2个条形图重叠起来// bar.setBarGrouping(BarGrouping.STACKED);// 修正重叠,使钢筋真正堆叠而不是并排// plotArea.getBarChartArray(0).addNewOverlap().setVal((byte) 100);// 柱状图1上显示数值plotArea.getBarChartArray(0).getSerArray(0).addNewDLbls();plotArea.getBarChartArray(0).getSerArray(0).getDLbls().addNewShowVal().setVal(true);plotArea.getBarChartArray(0).getSerArray(0).getDLbls().addNewShowLegendKey().setVal(false);plotArea.getBarChartArray(0).getSerArray(0).getDLbls().addNewShowCatName().setVal(false);plotArea.getBarChartArray(0).getSerArray(0).getDLbls().addNewShowSerName().setVal(false);// 将输出写入excel文件String filename = "test.xlsx";fileOut = new FileOutputStream(filename);wb.write(fileOut);} catch (Exception e) {e.printStackTrace();} finally {wb.close();if (fileOut != null) {fileOut.close();}}}}

修改柱状图数据,以上面生成的为例子

package com.demo.test;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.List;import org.apache.poi.xssf.usermodel.XSSFChart;
import org.apache.poi.xssf.usermodel.XSSFDrawing;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTBarSer;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumVal;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTPlotArea;public class Test {public static void main(String[] args) throws Exception {String fin = "D:\\Works\\eclipse\\znfx\\workspace\\poi\\test.xlsx";String fout = "D:\\Works\\eclipse\\znfx\\workspace\\poi\\test2.xlsx";FileInputStream fis = new FileInputStream(fin);FileOutputStream fos = new FileOutputStream(fout);XSSFWorkbook wb = new XSSFWorkbook(fis);XSSFSheet sheet = wb.getSheetAt(0);XSSFDrawing drawing = sheet.getDrawingPatriarch();List<XSSFChart> charts = drawing.getCharts();XSSFChart chart = charts.get(0);CTPlotArea plotArea = chart.getCTChart().getPlotArea();CTBarSer serArray = plotArea.getBarChartArray(0).getSerArray(0);System.out.println(serArray);List<CTNumVal> ptList = serArray.getVal().getNumLit().getPtList();for (int i = 0; i < ptList.size(); i++) {ptList.get(i).setV((i + 1) * 100 + "");// 改变值}wb.write(fos);fis.close();fos.close();wb.close();}}

具体api查考:

POI EXCEL 图表、折线图、条形图,柱状图、饼图、散点图_小百菜的博客-CSDN博客_poi 图表

第7、POI api

POI EXCEL修改图表相关推荐

  1. Excel 修改 【数据图表】 的 【数据源】 的范围 (VBA)

    目录 ■核心代码 ■操作 ■例: 选中图表 按下快捷键,运行宏(VBA代码) 使用代码的好处: ■扩展 (查看宏的快捷键) ■其他图表制作 ■核心代码 Excel 修改 [数据图表] 的 [数据源] ...

  2. POI 控制 excel 生成图表的方式(二)

    主要尝试 vb.jni 调用 excel 的 图表.实现了两种方式. 一 . java调用 vbs 1.思路: java 调用 vbs, , vbs调用 excel的宏. 2.具体步骤: (1) 创建 ...

  3. POI EXCEL 图表、折线图、条形图,柱状图、饼图、散点图

    POI Word生成图表:POI Word 图表.柱状图.条形图.折线图.饼图_u014644574的博客-CSDN博客_poi word 图表 1.pom.xml <dependency> ...

  4. html更改纵坐标数值,教大家Excel中图表坐标轴的数值怎么修改

    近日有关于Excel中图表坐标轴的数值怎么修改的问题受到了很多网友们的关注,大多数网友都想要知道Excel中图表坐标轴的数值怎么修改的具体情况,那么关于到Excel中图表坐标轴的数值怎么修改的相关信息 ...

  5. 5分钟就能做一个Excel动态图表,你确定不学学?(纯gif教学)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 宁做真小人,不做伪君子. 本文说明 ...

  6. 5分钟就能做一个Excel动态图表,你确定不学学?

    本文说明 下图是一个比较酷炫的Excel动态图表,最难的部分就是用到了一个复选框控件.其实这个控件我很早就见过,但是不会用呀!望洋兴叹.这次呢,我也是借着这个文章为大家讲述一下这个控件的使用.本文没有 ...

  7. 3个套路带你玩转Excel动态图表

    罂粟姐姐 | 作者 简书 | 来源 在这篇教程中,为大家分享Excel动态图表的三个套路,毕竟自古套路得人心啊. 1 辅助数据和复选框的结合 先看最终效果: 动态折线图  操作步骤  (1)新建辅助数 ...

  8. java 动态图表_【动态演示】3个套路带你玩转Excel动态图表!

    在这篇教程中,为大家分享Excel动态图表的三个套路,毕竟自古套路得人心啊. 1 辅助数据和复选框的结合 先看最终效果: 动态折线图 操作步骤 (1)新建辅助数据表,在B18单元格输入公式=IF(B$ ...

  9. 如何快速调整Excel中图表标签位置

    如何快速调整Excel中图表标签位置 问题介绍 具体操作 问题介绍 在日常统计工作中,需要制作一些图表,例如下图: 图表中有时需要标注柱状图等的数据标签,但是在调整标签位置的时候,往往只能单个调整,无 ...

最新文章

  1. 刷爆了!这项技术BAT力捧!程序员:我彻底慌了...
  2. 下列代码之后的结果为()?
  3. 【深入浅出WF】——令牌环的变身—书签
  4. Jmeter----5.1 设置中文
  5. linux安装apache+mysql+php3.8练习环境
  6. 下列计算机设备中运行最慢的是,下列4种存储设备中,读写速度最慢的是( )。A.内存条B.硬盘C. CPU内部寄存器D. Cache - 试题答案网问答...
  7. 列注释_机器学习 Pandas 08:进阶 前09题 ( 带答案、注释 )
  8. HDU 2148 Score
  9. C# 与 C 和 C++ 比较
  10. 完成端口学习笔记(一):完成端口+控制台 实现文件拷贝
  11. html简易登陆注册模板
  12. 互联网大厂裁掉你的奇葩理由
  13. 7-2 矮冬瓜火锅店周年庆“冬瓜会员”查询
  14. 背包问题之0-1背包算法详解
  15. 80C51汇编语言编程实验报告,80C51单片机-实验报告.doc
  16. 两台计算机组装在一起,好看又实用 手把手教你把两台电脑装在一起
  17. 车载电子 || 电池FPC连接片虚焊失效分析
  18. python矩阵和向量乘积_矩阵与向量的乘积
  19. [暑假]解决:开发分支拉错问题,比如我们在master修改成feature
  20. C语言程序设计(第4版)谭浩强著—学习笔记chapter one 程序设计与C语言

热门文章

  1. Echarts柱状图在实体里面展示数据/柱状图顶部展示数据简记
  2. green power 设备入网过程
  3. 2021-03-30
  4. 依图在实时音视频中语音处理的挑战丨RTC Dev Meetup
  5. c#定义一个接口IShape,其中包括方法Area()用来计算面积,
  6. 8421码、5421码、2421码与余三码
  7. 编写configure.ac
  8. 科研绘图之R语言生存分析KM曲线累计风险表放在图片内部
  9. EPUB转为PDF和书籍pdf下载
  10. 极米RS Pro 2值得买吗?极米科技这款4K投影真实体验怎么样?