欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 在Excel中不使用单元格数据创建图表

程序员文章站 2022-03-28 14:41:33
...

在Excel创建图表时,常见情况下,图表生成依赖于表格单元格中的数据源,写入数据到单元格,然后根据单元格数据来创建图表,即数据源关联图表。本文介绍另一种不使用单元格中的数据来创建图表的方法,即在代码中定义数据源数组内容,直接通过数组数据生成图表并添加到Excel表格。

 

工具使用

  • Spire.Xls.jar(这里使用的免费版,注意下载Free Spire.XLS for Java的包,jar文件在解压文件夹lib下面)
  • Jdk版本:1.6.0或者更高版本
  • IDEA

注意:导入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();
    }
}