Java 在Excel中不使用单元格数据创建图表_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java 在Excel中不使用单元格数据创建图表

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

 2020/11/24 18:58:02  Miaonly  程序员俱乐部  我要评论(0)
  • 摘要:在Excel创建图表时,常见情况下,图表生成依赖于表格单元格中的数据源,写入数据到单元格,然后根据单元格数据来创建图表,即数据源关联图表。本文介绍另一种不使用单元格中的数据来创建图表的方法,即在代码中定义数据源数组内容,直接通过数组数据生成图表并添加到Excel表格。工具使用Spire.Xls.jar(这里使用的免费版,注意下载FreeSpire.XLSforJava的包,jar文件在解压文件夹lib下面)Jdk版本:1.6.0或者更高版本IDEA注意:导入Spire.Xls
  • 标签:创建 excel 使用 Java 数据

class="MsoNormal">在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();
    }
}

?

?

?

发表评论
用户名: 匿名