1.首先需要引进poi相关依赖,需要注意的是,如果没有ooxml-schemas,代码是会报错的

<dependency><groupId>org.apache.poi</groupId><artifactId>ooxml-schemas</artifactId><version>1.0</version>
</dependency>

2.java导出带柱状图或饼状图的excel其实有两种方式,一种是直接创建新的excel文件,在该文件中写入柱状图或其他的图,并写入数据源,这种方式相对来说较复杂,因为需要设置很多图的样式;第二种是直接读取本地的模板excel文件,把文件中已经创建好的的图表赋值我们从后台查询的数据,这种方式比较简单,很多样式都可以在模板中设置好,我们直接获取excel文件中的各个图,再分别指定数据源即可

                String path = "模板存放全路径";File excel = new File(path);//写入数据到excel文件中,只写第一列和第二列,表头除外FileInputStream is = new FileInputStream(excel);XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);//获取创建工作簿的第一页XSSFSheet sheet = xssfWorkbook.getSheetAt(0);//自动计算sheet.setForceFormulaRecalculation(true);//给指定的sheet命名xssfWorkbook.setSheetName(0, "图表统计");//存储当前表格的样式XSSFCellStyle cellStyle = xssfWorkbook.createCellStyle();//遍历列,填充数据for (int i = 0; i < lstStatistic.size(); i++) {Row row = sheet.createRow(i+1);row.createCell(0).setCellValue(lstStatistic.get(i).getString(mapParams.get("onStatisticField").toString()));//keyrow.createCell(1).setCellValue(lstStatistic.get(i).getDoubleValue(mapParams.get("outStatisticFieldName").toString()));//value}//遍历图表,设置图表的选值范围---仅支持xlsx格式的excelXSSFDrawing drawingPatriarch = sheet.getDrawingPatriarch();//拿到图形List<XSSFChart> charts = drawingPatriarch.getCharts();XSSFChart chart = null;CTChart ctChart = null;CTPlotArea plotArea = null;/*-----------------柱状图-------------------*/chart = charts.get(0);ctChart = chart.getCTChart();plotArea = ctChart.getPlotArea();// 获取图表的系列CTBarSer serBar = plotArea.getBarChartArray(0).getSerArray(0);
//              serBar.getTx().getStrRef().setF("柱状图");
//              指定数据区域serBar.getCat().getNumRef().setF("图表统计!$A$2:$A$"+(lstStatistic.size()+1));serBar.getVal().getNumRef().setF("图表统计!$B$2:$B$"+(lstStatistic.size()+1));/*------------------饼状图-----------------*/chart = charts.get(1);ctChart = chart.getCTChart();plotArea = ctChart.getPlotArea();CTPieSer serPipe = plotArea.getPieChartArray(0).getSerArray(0);serPipe.getCat().getNumRef().setF("图表统计!$A$2:$A$"+(lstStatistic.size()+1));serPipe.getVal().getNumRef().setF("图表统计!$B$2:$B$"+(lstStatistic.size()+1));//写出FileOutputStream os = new FileOutputStream(excel);xssfWorkbook.write(os);xssfWorkbook.close();//TODO 流的处理is.close();os.flush();os.close();

这里注意一点就是,只支持xlsx格式的excel文件

3.本地模板文件截图如下

java修改excel图表数据源,导出excel图表文件相关推荐

  1. Java 利用hutool工具实现导出excel并合并单元格

    Java 利用hutool工具实现导出excel并合并单元格 controller层调用service,就一个核心方法,没错就下面这个代码就能实现了.前提是项目里面要引用hutool包.把我这个复制到 ...

  2. maatwebsite/Excel 3.0 导出 Excel 如何设置长数字为文本

    maatwebsite/Excel 3.0 导出 Excel 如何设置长数字为文本 我这里是 'C' 这几列是超过 15 位数字,自动转换为了科学计数法,所以直接绑定这几列即可. https://gi ...

  3. python 图表_python导出excel charts图表

    在Excel vba将chart另存为图片篇中讲了如何通过vba宏将excel 中的chart图表导出为的图片,本篇讲下如何使用纯python代码将excel 中的图表导出为图片.这里需要使用的模块有 ...

  4. java使用POI工具类导出excel

    POI导出excel 1.导入maven依赖 <dependency><groupId>org.apache.poi</groupId><artifactId ...

  5. 中报表导出带表头_来看看Java是 如何优雅的导出 Excel的

    点击上方"Python高校",关注 文末干货立马到手 来源:你在我家门口 juejin.im/post/5c6b6b126fb9a04a0c2f024f 前言 公司项目最近有一个需 ...

  6. 【Vegas原创】GridView修改表头,并导出Excel(C#版)

    protected void btnExcel_Click(object sender, EventArgs e)     {         //绑定         bindgrdExcel(); ...

  7. java excil表格开发_JAVA导出Excel电子表格的方法

    JAVA导出Excel电子表格的方法 package com.qingruxu.excel; import java.io.File; import java.io.IOException; impo ...

  8. java 导出excel教程_Java导出Excel表格

    Java导出Excel表格 导出Excel表格需要一个poi-3.9.jar的包,该包在网上可以找到. 第一步,创建Excel对象. HSSFWorkbook workbook = new HSSFW ...

  9. java导出excel 乱码_java导出excel时出现文件名乱码解决方法

    java解决导出Excel时文件名乱码的方法示例:(推荐:java视频教程)String agent = request.getHeader("USER-AGENT").toLow ...

  10. 使用Java在浏览器页面无法导出excel表格

    使用Java在浏览器页面导出excel表格,应该用from表单导出,而不是ajax请求,个人见解.

最新文章

  1. nginx虚拟目录配置
  2. logstash使用,结果输出到stdout
  3. 《软件架构与设计模式》关于 抽象工厂模式 的一个小例子
  4. 工作缺点和不足及措施_安全生产 | 查不足 定措施 抓落实 强管理 圣雄氯碱组织开展“事故回头看”工作...
  5. php json.parse,JSON.parse()与JSON.stringify()和eval()使用方法详解
  6. 学成在线--13.RabbitMQ工作模式
  7. 一个间歇性进程hang问题的处理
  8. JDK 安装 Java环境变量配置 详细教程
  9. python打开360浏览器_使用python3.7 的pycharm selenium自动化测试中启动360浏览器、360极速浏览器的方法...
  10. 震旦188e扫描_震旦ad188打印机无法扫描怎么处理
  11. Java开发webservice接口
  12. 防水穿墙套管在建筑外墙管道需设置柔性连接
  13. 魔方还原算法(三) 上帝算法
  14. 字符转详细与初步了解for循环
  15. 基于51单片机的电压检测系统设计(#0412)
  16. 【基础教程】法线贴图原理与制作 粗解
  17. 突然断电对oracle的影响,Oracle数据库之由于突然断电造成oracle数据库的部分clob字段值变为(损毁)...
  18. python 调用百度云端人脸搜索
  19. grpc-gateway 返回值中默认值为什么不显示?
  20. C语言程序设计谭浩强第五版复习梳理2

热门文章

  1. linux: 空指令(:)
  2. WordPress安装插件提示输入FTP账户信息
  3. Android 开发者不得不面对的六个问题
  4. Linux学习之路(2-1)文件、目录与磁盘格式
  5. VBScript Sample:遍历文件夹并获取XML文件中指定内容
  6. SQL递归查询(with cte as)
  7. ubuntu 安装docker_Docker学习笔记1 虚拟化历史及 Ubuntu环境下体验安装
  8. github客户端进行token认证
  9. 如何通过 WinUSB 功能访问 USB 设备
  10. qt的qopengl绘制箱子,实现翻转