it编程 > 编程语言 > Java

java导出Echarts图表的示例代码(柱状图/饼形图/折线图)

9人参与 2025-06-11 Java

1、apache poi依赖

代码如下所示:

<dependencies>
    <dependency>
        <groupid>org.apache.poi</groupid>
        <artifactid>poi-ooxml</artifactid>
        <version>4.1.2</version>
    </dependency>
    <dependency>
        <groupid>org.apache.poi</groupid>
        <artifactid>poi-ooxml-schemas</artifactid>
        <version>4.1.2</version>
    </dependency>
    <dependency>
        <groupid>org.apache.poi</groupid>
        <artifactid>poi</artifactid>
        <version>4.1.2</version>
    </dependency>
    <dependency>
        <groupid>org.apache.poi</groupid>
        <artifactid>poi-scratchpad</artifactid>
        <version>4.1.2</version>
    </dependency>
    <dependency>
        <groupid>org.apache.xmlbeans</groupid>
        <artifactid>xmlbeans</artifactid>
        <version>3.1.0</version>
    </dependency>
    <dependency>
        <groupid>org.apache.poi</groupid>
        <artifactid>ooxml-schemas</artifactid>
        <version>1.4</version>
    </dependency>

2、导出word报告controller

  @apioperation(value = "导出word报告", notes = "导出word报告")
   @getmapping("/exportword")
   public void exportword(httpservletresponse response) throws exception {
      xwpfdocument word = commonservice.exportword();
         try {
             response.setheader("content-disposition",
            "attachment;filename=" + new string("analysis_report.doc".getbytes(), "utf-8"));
              response.setcontenttype("application/x-msdownload");
               outputstream os = response.getoutputstream();
                 word.write(os);
                 os.close();
        } catch (ioexception e) {
            logger.info("文件下载出错!");
        }
    }

3、service

//导出word报告
xwpfdocument  exportword() throws exception;

4、servicelmpl

package com.iecas.satresource.service.impl;
import org.apache.poi.util.units;
import org.apache.poi.xddf.usermodel.chart.*;
import org.apache.poi.xwpf.usermodel.xwpfchart;
import org.apache.poi.xwpf.usermodel.xwpfdocument;
import java.io.fileoutputstream;
@override
public xwpfdocument exportword() {
    // 1、创建word文档对象
    xwpfdocument doc = new xwpfdocument();
    xwpfparagraph para;
    xwpfrun run;
     //2.// x轴标题
     string name = " ";
      // 3、x轴(分类轴)数据
   string[] xaxisdata = new string[] {
            "2022-01","2022-02","2022-03","2022-04","2022-05","2022-06",
            "2022-07","2022-08","2022-09","2022-10","2022-11","2022-12",
    };
        yaxis.settitle("流量(个)"); // y轴标题
    yaxis.setcrossbetween(axiscrossbetween.between); // 设置图柱的位置:between居中
     // 4、y轴数据
    integer[] yaxisdata = new integer[]{
            20, 37, 21, 75, 79, 118,
            29, 112, 51, 85, 101, 89
    };
 //如一次性导出多个echarts柱形图可创建多个方法进行调用创建,如果数据类型不一样可在创建工具类创建多个方法进行调用
    wordutil.wordreadzc(doc, xaxisdate, yaxisdat4, name);
    return doc;
    }

5、工具类

package com.iecas.satresource.utils;
import org.apache.poi.openxml4j.exceptions.invalidformatexception;
import org.apache.poi.util.units;
import org.apache.poi.xddf.usermodel.chart.*;
import org.apache.poi.xwpf.usermodel.xwpfchart;
import org.apache.poi.xwpf.usermodel.xwpfdocument;

import java.io.ioexception;

/**
 * 导出echarts柱形图
 */
public class wordutil {
 xwpfchart chart = null;
  public xwpfchart wordread(xwpfdocument doc, string[] xaxisdate, integer[] yaxisdate, string name) {
      try {
        this.chart = doc.createchart(5400000, 3600000);
    } catch (invalidformatexception var15) {
        var15.printstacktrace();
    } catch (ioexception var16) {
        var16.printstacktrace();
    }

    this.chart.settitleoverlay(false);
    xddfchartlegend legend = this.chart.getoraddlegend();
    legend.setposition(legendposition.top);
    xddfcategoryaxis xaxis = this.chart.createcategoryaxis(axisposition.bottom);
    //标题名称
    xaxis.settitle(name);
    //x数据
    xddfcategorydatasource xaxissource = xddfdatasourcesfactory.fromarray(xaxisdate);
    xddfvalueaxis yaxis = this.chart.createvalueaxis(axisposition.left);
    yaxis.setcrossbetween(axiscrossbetween.between);
    xddfbarchartdata barchart;
    series barseries;
    //y数据
      xddfnumericaldatasource<integer> yaxissource1 = xddfdatasourcesfactory.fromarray(yaxisdate);
        barchart = (xddfbarchartdata)this.chart.createdata(charttypes.bar, xaxis, yaxis);
        barchart.setbardirection(bardirection.col);
        barseries = (series)barchart.addseries(xaxissource, yaxissource1);
        barseries.settitle("", (cellreference)null);
        this.chart.plot(barchart);
            return this.chart;
  }
}

到此这篇关于java导出echarts图表的示例代码(柱状图/饼形图/折线图)的文章就介绍到这了,更多相关java导出echarts图表内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

Springboot项目由JDK8升级至JDK17详细教程

06-11

Java中获取实时气象信息的3种方法

06-11

Java类加载器ClassLoader详解

06-11

java的Stream流处理示例小结

06-11

java获取压缩文件中的XML并解析保存到数据库

06-11

SpringBoot Java通过API的方式调用腾讯智能体(腾讯元宝)代码示例

06-11

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论