Miaonly 阅读(85) 评论(0)

本文介绍通过Java程序在Excel工作表中创建雷达图表的方法。

程序环境

  • Spire.Xls.jar 免费版本3.9.1
  • Jdk版本要求1.6.0或者更高版本

注意,这里支持两种方法导入jar:

方法1可自行到官网下载免费版,并解压,将lib文件夹下的jar导入Java程序;

 

方法2maven中配置pom.xml文件,指定maven仓库路径和Spire.Xls.free的依赖来导入

<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <url>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 java.awt.*;

public class RadarChart {
    public static void main(String[] args) {
        //创建Excel工作簿
        Workbook wb = new Workbook();
        Worksheet sheet = wb.getWorksheets().get(0);

        //添加表格数据
        sheet.getRange().get("A1").setValue("部门");
        sheet.getRange().get("A2").setValue("研发部");
        sheet.getRange().get("A3").setValue("质检部");
        sheet.getRange().get("A4").setValue("生产部");
        sheet.getRange().get("A5").setValue("财务部");
        sheet.getRange().get("A6").setValue("销售部");

        sheet.getRange().get("B1").setValue("人数");
        sheet.getRange().get("B2").setNumberValue(30);
        sheet.getRange().get("B3").setNumberValue(10);
        sheet.getRange().get("B4").setNumberValue(25);
        sheet.getRange().get("B5").setNumberValue(28);
        sheet.getRange().get("B6").setNumberValue(20);

        sheet.getRange().get("C1").setValue("月支出(万元)");
        sheet.getRange().get("C2").setNumberValue(60);
        sheet.getRange().get("C3").setNumberValue(45);
        sheet.getRange().get("C4").setNumberValue(50);
        sheet.getRange().get("C5").setNumberValue(38);
        sheet.getRange().get("C6").setNumberValue(65);

        //格式化表格数据
        sheet.getRange().get("A1:C1").getStyle().getFont().isBold(true);
        sheet.getRange().get("A1:C6").getStyle().getFont().setSize(12);
        sheet.getRange().get("A1:C1").setRowHeight(17);
        sheet.getRange().get("A1:C6").setColumnWidth(16);
        sheet.getRange().get("A1:C1").getStyle().setColor(new Color(176,224,230));
        sheet.getRange().get("A2:C6").getStyle().setColor(new Color(255,239,213));
        sheet.getRange().get("A1:C6").getStyle().setHorizontalAlignment(HorizontalAlignType.Center);

        sheet.getRange().get("C2:C6").getStyle().setNumberFormat("\"¥\"#,##0");

        //添加雷达图表到表格
        Chart chart = sheet.getCharts().add(ExcelChartType.Radar);
        chart.setLeftColumn(1);
        chart.setTopRow(7);
        chart.setRightColumn(8);
        chart.setBottomRow(27);
        chart.setDataRange(sheet.getRange().get("A1:C6"));
        chart.setSeriesDataFromRange(false);
        chart.setChartTitle("部门开支统计分析");
        chart.getChartTitleArea().isBold();
        chart.getChartTitleArea().setSize(12);
        chart.getPlotArea().getFill().setVisible(false);
        chart.getLegend().setPosition(LegendPositionType.Corner);

        //保存文档
        wb.saveToFile("result.xlsx", ExcelVersion.Version2013);
        wb.dispose();
    }
}