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图表内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论