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

在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文件(如下),完成配置后,导入


    
        com.e-iceblue
        http://repo.e-iceblue.cn/repository/maven-public/
     



        e-iceblue
  spire.xls.free
  3.9.1

Jar文件导入结果:


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();
     }
 }

图表生成效果:




请使用浏览器的分享功能分享到微信等