class="MsoNormal">在Excel创建图表时,常见情况下,图表生成依赖于表格单元格中的数据源,写入数据到单元格,然后根据单元格数据来创建图表,即数据源关联图表。本文介绍另一种不使用单元格中的数据来创建图表的方法,即在代码中定义数据源数组内容,直接通过数组数据生成图表并添加到Excel表格。
?
注意:导入Spire.Xls.jar文件到Java程序可分两种方法,手动导入和maven仓库配置,
1. 手动导入:下载jar包,解压将lib文件夹下的Spire.Xls.jar文件导入。
?
2. Maven配置导入:配置pom.xml文件(如下),完成配置后,导入
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>3.9.1</version>
</dependency>
</dependencies>
?
Java代码
import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;
import java.awt.*;
public class CreateChart {
public static void main(String[] args) {
//创建工作簿
Workbook wb = new Workbook();
//获取第一个工作表(创建工作簿时,已默认包含3个工作表)
Worksheet sheet = wb.getWorksheets().get(0);
//添加图表,并指定图表类型
Chart chart = sheet.getCharts().add(ExcelChartType.LineMarkersStacked);
//添加图表系列
ChartSerie series1 = chart.getSeries().add();
//定义图表生成所需数据
series1.setEnteredDirectlyCategoryLabels(new Object[]{"英国", "美国", "中国", "加拿大", "泰国", "新加坡"});
series1.setEnteredDirectlyValues(new Object[]{254, 221, 438, 158, 250, 300});
//设置图表标题、坐标轴、背景色
chart.setChartTitle("上半年产量(万吨)");
chart.getChartTitleArea().setSize(12);
chart.getPrimaryCategoryAxis().setTitle("原产国");
chart.getPrimaryValueAxis().setTitle("产 量");
chart.getPlotArea().getFill().setForeColor(new Color(250,235,215));
//保存文档
wb.saveToFile("result.xlsx", ExcelVersion.Version2013);
wb.dispose();
}
}
?
?
?