java修改excel图表数据源,导出excel图表文件
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图表文件相关推荐
- Java 利用hutool工具实现导出excel并合并单元格
Java 利用hutool工具实现导出excel并合并单元格 controller层调用service,就一个核心方法,没错就下面这个代码就能实现了.前提是项目里面要引用hutool包.把我这个复制到 ...
- maatwebsite/Excel 3.0 导出 Excel 如何设置长数字为文本
maatwebsite/Excel 3.0 导出 Excel 如何设置长数字为文本 我这里是 'C' 这几列是超过 15 位数字,自动转换为了科学计数法,所以直接绑定这几列即可. https://gi ...
- python 图表_python导出excel charts图表
在Excel vba将chart另存为图片篇中讲了如何通过vba宏将excel 中的chart图表导出为的图片,本篇讲下如何使用纯python代码将excel 中的图表导出为图片.这里需要使用的模块有 ...
- java使用POI工具类导出excel
POI导出excel 1.导入maven依赖 <dependency><groupId>org.apache.poi</groupId><artifactId ...
- 中报表导出带表头_来看看Java是 如何优雅的导出 Excel的
点击上方"Python高校",关注 文末干货立马到手 来源:你在我家门口 juejin.im/post/5c6b6b126fb9a04a0c2f024f 前言 公司项目最近有一个需 ...
- 【Vegas原创】GridView修改表头,并导出Excel(C#版)
protected void btnExcel_Click(object sender, EventArgs e) { //绑定 bindgrdExcel(); ...
- java excil表格开发_JAVA导出Excel电子表格的方法
JAVA导出Excel电子表格的方法 package com.qingruxu.excel; import java.io.File; import java.io.IOException; impo ...
- java 导出excel教程_Java导出Excel表格
Java导出Excel表格 导出Excel表格需要一个poi-3.9.jar的包,该包在网上可以找到. 第一步,创建Excel对象. HSSFWorkbook workbook = new HSSFW ...
- java导出excel 乱码_java导出excel时出现文件名乱码解决方法
java解决导出Excel时文件名乱码的方法示例:(推荐:java视频教程)String agent = request.getHeader("USER-AGENT").toLow ...
- 使用Java在浏览器页面无法导出excel表格
使用Java在浏览器页面导出excel表格,应该用from表单导出,而不是ajax请求,个人见解.
最新文章
- nginx虚拟目录配置
- logstash使用,结果输出到stdout
- 《软件架构与设计模式》关于 抽象工厂模式 的一个小例子
- 工作缺点和不足及措施_安全生产 | 查不足 定措施 抓落实 强管理 圣雄氯碱组织开展“事故回头看”工作...
- php json.parse,JSON.parse()与JSON.stringify()和eval()使用方法详解
- 学成在线--13.RabbitMQ工作模式
- 一个间歇性进程hang问题的处理
- JDK 安装 Java环境变量配置 详细教程
- python打开360浏览器_使用python3.7 的pycharm selenium自动化测试中启动360浏览器、360极速浏览器的方法...
- 震旦188e扫描_震旦ad188打印机无法扫描怎么处理
- Java开发webservice接口
- 防水穿墙套管在建筑外墙管道需设置柔性连接
- 魔方还原算法(三) 上帝算法
- 字符转详细与初步了解for循环
- 基于51单片机的电压检测系统设计(#0412)
- 【基础教程】法线贴图原理与制作 粗解
- 突然断电对oracle的影响,Oracle数据库之由于突然断电造成oracle数据库的部分clob字段值变为(损毁)...
- python 调用百度云端人脸搜索
- grpc-gateway 返回值中默认值为什么不显示?
- C语言程序设计谭浩强第五版复习梳理2