在Excel文档中,图表是指将工作表中的数据用图形的方式表示出来。它不仅能够反映数据间的某种相对关系,以此来帮助我们分析和对比数据;同时能够使得数据更加易于阅读,引人注目。本文就将通过使用Java程序来演示如何在Excel文档中创建一些常用的图表,包括柱状图、饼状图和折线图。

Jar文件获取及导入:

方法1:通过官网下载获取jar包。解压后将lib文件夹下的Spire.Xls.jar文件导入Java程序。(如下图)

方法2:通过maven仓库安装导入。具体安装详情参见此网页。

【示例1】创建柱状图

import com.spire.xls.*;

import com.spire.xls.charts.ChartSerie;

import com.spire.xls.charts.ChartSeries;

import java.awt.*;

public class ColumnChart {

public static void main(String[] args) {

//创建Workbook对象

Workbook workbook = new Workbook();

//获取第一个工作表

Worksheet sheet = workbook.getWorksheets().get(0);

//将图表数据写入工作表

sheet.getCellRange("A1").setValue("部门");

sheet.getCellRange("A2").setValue("开发部");

sheet.getCellRange("A3").setValue("测试部");

sheet.getCellRange("A4").setValue("销售部");

sheet.getCellRange("A5").setValue("技术支持部");

sheet.getCellRange("B1").setValue("男性");

sheet.getCellRange("B2").setNumberValue(65);

sheet.getCellRange("B3").setNumberValue(21);

sheet.getCellRange("B4").setNumberValue(12);

sheet.getCellRange("B5").setNumberValue(30);

sheet.getCellRange("C1").setValue("女性");

sheet.getCellRange("C2").setNumberValue(13);

sheet.getCellRange("C3").setNumberValue(33);

sheet.getCellRange("C4").setNumberValue(28);

sheet.getCellRange("C5").setNumberValue(21);

//设置单元格样式

sheet.getCellRange("A1:C1").setRowHeight(15);

sheet.getCellRange("A1:C1").getCellStyle().setColor(Color.darkGray);

sheet.getCellRange("A1:C1").getCellStyle().getExcelFont().setColor(Color.white);

sheet.getCellRange("A1:C1").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);

sheet.getCellRange("A1:C1").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);

sheet.autoFitColumn(1);

//添加柱形图

Chart chart =sheet.getCharts().add(ExcelChartType.ColumnClustered);

//设置图表数据区域

chart.setDataRange(sheet.getCellRange("A1:C5"));

chart.setSeriesDataFromRange(false);

//设置图表位置

chart.setLeftColumn(5);

chart.setTopRow(1);

chart.setRightColumn(14);

chart.setBottomRow(21);

//设置图表标题

chart.setChartTitle("部门信息");

chart.getChartTitleArea().isBold(true);

chart.getChartTitleArea().setSize(12);

//设置x,y轴的名称

chart.getPrimaryCategoryAxis().setTitle("部门");

chart.getPrimaryCategoryAxis().getFont().isBold(true);

chart.getPrimaryCategoryAxis().getTitleArea().isBold(true);

chart.getPrimaryValueAxis().setTitle("人数");

chart.getPrimaryValueAxis().hasMajorGridLines(false);

chart.getPrimaryValueAxis().getTitleArea().isBold(true);

chart.getPrimaryValueAxis().getTitleArea().setTextRotationAngle(90);

//设置系列颜色、重叠、宽度和数字标签

ChartSeries series = chart.getSeries();

for (int i = 0 ; i < series.size() ; i++) {

ChartSerie cs = series.get(i);

cs.getFormat().getOptions().isVaryColor(true);

cs.getFormat().getOptions().setOverlap(-50);

cs.getFormat().getOptions().setGapWidth(350);

cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);

}

//设置图例位置

chart.getLegend().setPosition(LegendPositionType.Top);

//保存文档

workbook.saveToFile("output/ColumnChart.xlsx", ExcelVersion.Version2016);

}

}

柱状图创建效果:

【示例2】创建饼状图

import com.spire.xls.*;

import com.spire.xls.charts.ChartSerie;

import java.awt.*;

public class PieChart {

public static void main(String[] args) {

//创建Workbook对象

Workbook workbook = new Workbook();

//获取第一个工作表

Worksheet sheet = workbook.getWorksheets().get(0);

//将图表数据写入工作表

sheet.getCellRange("A1").setValue("国家");

sheet.getCellRange("A2").setValue("古巴");

sheet.getCellRange("A3").setValue("墨西哥");

sheet.getCellRange("A4").setValue("法国");

sheet.getCellRange("A5").setValue("德国");

sheet.getCellRange("B1").setValue("销售额");

sheet.getCellRange("B2").setNumberValue(400000);

sheet.getCellRange("B3").setNumberValue(600000);

sheet.getCellRange("B4").setNumberValue(700000);

sheet.getCellRange("B5").setNumberValue(850000);

//设置单元格样式

sheet.getCellRange("A1:B1").setRowHeight(15);

sheet.getCellRange("A1:B1").getCellStyle().setColor(Color.darkGray);

sheet.getCellRange("A1:B1").getCellStyle().getExcelFont().setColor(Color.white);

sheet.getCellRange("A1:B1").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);

sheet.getCellRange("A1:B1").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);

sheet.getCellRange("B2:C5").getCellStyle().setNumberFormat("\"$\"#,##0");

//添加饼图

Chart chart = sheet.getCharts().add(ExcelChartType.Pie);

//设置图表数据区域

chart.setDataRange(sheet.getCellRange("B2:B5"));

chart.setSeriesDataFromRange(false);

//设置图表位置

chart.setLeftColumn(4);

chart.setTopRow(1);

chart.setRightColumn(13);

chart.setBottomRow(21);

//设置图表标题

chart.setChartTitle("市场份额");

chart.getChartTitleArea().isBold(true);

chart.getChartTitleArea().setSize(12);

//设置系列标签

ChartSerie cs = chart.getSeries().get(0);

cs.setCategoryLabels(sheet.getCellRange("A2:A5"));

cs.setValues(sheet.getCellRange("B2:B5"));

cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);

cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasPercentage(true);

chart.getPlotArea().getFill().setVisible(false);

//保存文档

workbook.saveToFile("output/PieChart.xlsx", ExcelVersion.Version2016);

}

}

饼状图创建效果:

【示例3】创建折线图

import com.spire.xls.*;

import com.spire.xls.charts.ChartSerie;

import com.spire.xls.charts.ChartSeries;

import java.awt.*;

public class LineChart {

public static void main(String[] args) {

//创建Workbook对象

Workbook workbook = new Workbook();

//获取第一个工作表

Worksheet sheet = workbook.getWorksheets().get(0);

//将图表数据写入工作表

sheet.getCellRange("A1").setValue("月份");

sheet.getCellRange("A2").setValue("一月");

sheet.getCellRange("A3").setValue("二月");

sheet.getCellRange("A4").setValue("三月");

sheet.getCellRange("A5").setValue("四月");

sheet.getCellRange("A6").setValue("五月");

sheet.getCellRange("A7").setValue("六月");

sheet.getCellRange("B1").setValue("台式电脑");

sheet.getCellRange("B2").setNumberValue(80);

sheet.getCellRange("B3").setNumberValue(45);

sheet.getCellRange("B4").setNumberValue(25);

sheet.getCellRange("B5").setNumberValue(20);

sheet.getCellRange("B6").setNumberValue(10);

sheet.getCellRange("B7").setNumberValue(5);

sheet.getCellRange("C1").setValue("手提电脑");

sheet.getCellRange("C2").setNumberValue(30);

sheet.getCellRange("C3").setNumberValue(25);

sheet.getCellRange("C4").setNumberValue(35);

sheet.getCellRange("C5").setNumberValue(50);

sheet.getCellRange("C6").setNumberValue(45);

sheet.getCellRange("C7").setNumberValue(55);

sheet.getCellRange("D1").setValue("平板电脑");

sheet.getCellRange("D2").setNumberValue(10);

sheet.getCellRange("D3").setNumberValue(15);

sheet.getCellRange("D4").setNumberValue(20);

sheet.getCellRange("D5").setNumberValue(35);

sheet.getCellRange("D6").setNumberValue(60);

sheet.getCellRange("D7").setNumberValue(95);

//设置单元格样式

sheet.getCellRange("A1:D1").setRowHeight(15);

sheet.getCellRange("A1:D1").getCellStyle().setColor(Color.darkGray);

sheet.getCellRange("A1:D1").getCellStyle().getExcelFont().setColor(Color.white);

sheet.getCellRange("A1:D1").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);

sheet.getCellRange("A1:D1").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);

//添加折线图

Chart chart = sheet.getCharts().add(ExcelChartType.Line);

//设置图表数据区域

chart.setDataRange(sheet.getCellRange("A1:D7"));

chart.setSeriesDataFromRange(false);

//设置图表位置

chart.setLeftColumn(6);

chart.setTopRow(1);

chart.setRightColumn(15);

chart.setBottomRow(21);

//设置图表标题

chart.setChartTitle("产品销售趋势图");

chart.getChartTitleArea().isBold(true);

chart.getChartTitleArea().setSize(12);

//设置x,y轴的名称

chart.getPrimaryCategoryAxis().setTitle("月份");

chart.getPrimaryCategoryAxis().getFont().isBold(true);

chart.getPrimaryCategoryAxis().getTitleArea().isBold(true);

chart.getPrimaryValueAxis().setTitle("销售量");

chart.getPrimaryValueAxis().hasMajorGridLines(false);

chart.getPrimaryValueAxis().getTitleArea().setTextRotationAngle(90);

chart.getPrimaryValueAxis().getTitleArea().isBold(true);

//设置系列颜色和数字标签

ChartSeries series = chart.getSeries();

for (int i = 0; i < series.size(); i++) {

ChartSerie cs = series.get(i);

cs.getFormat().getOptions().isVaryColor(true);

cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);

cs.getDataFormat().setMarkerStyle(ChartMarkerType.Circle);

}

//设置图例位置

chart.getLegend().setPosition(LegendPositionType.Top);

//保存文档

workbook.saveToFile("output/LineChart.xlsx", ExcelVersion.Version2016);

}

}

折线图创建效果:

(本文完)

java 柱状图 宽度_Java 创建Excel图表相关推荐

  1. java 雷达图_Java 创建Excel雷达图

    class="MsoNormal">本文介绍通过Java程序在Excel工作表中创建雷达图表的方法. 程序环境 Spire.Xls.jar 免费版本3.9.1 Jdk版本要求 ...

  2. java图表标题_Java 创建Excel图表

    import com.spire.xls.*; import com.spire.xls.charts.ChartSerie; import com.spire.xls.charts.ChartSer ...

  3. java jxl使用_java创建excel示例(jxl使用方法)

    使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表.因为是使用 Java编写的,所以我们在Web应用中可以通过JSP.Servlet来调用API实现对Excel数据表的 ...

  4. java 柱状图 宽度_Java实现 LeetCode 84 柱状图中最大得矩形

    84. 柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的 ...

  5. java 数据透视表 组件_Java创建Excel数据透视表

    正版现货excel效率手册早做完不锡 22.82元 包邮 (需用券) 去购买 > Excel 数据透视表具有强大的数据处理功能,能够使表格中的数据更加直观化.使用Excel 数据透视表,能方便用 ...

  6. Spire.XLS 图表系列教程:C# 如何不使用工作数据创建Excel图表以及Excel雷达图

    更多资源查看:Spire.XLS工作表教程 | Spire.Doc系列教程 | Spire.PDF系列教程 [下载Spire.XLS最新试用版] Spire.XLS for .NET 是一款专业的 . ...

  7. JAVA实现在面板中添加图表_Java 创建PowerPoint图表并为其添加趋势线

    图表,是指将既得数据用图形的方式表示出来.在前文中我们介绍过如何使用Java程序来为Excel文档创建图表的方法.本文将通过使用Java程序来演示如何创建PowerPoint图表及为图表添加趋势线.趋 ...

  8. java设置字体大小和颜色_Java 设置Excel图表背景填充(颜色、图片填充)

    本文介绍通过Java程序来设置Excel图表背景填充的方法,填充时,可设置颜色填充或者加载图片填充:填充区域可设置整个图表区域或者绘图区域.设置方法参考以下内容. 使用工具:Free Spire.XL ...

  9. java如何绘制图表_java绘制excel图表(jxcell)

    import com.jxcell.*; import java.awt.*; public class ChartFormatTest { public static void main(Strin ...

  10. Java 散点图 数据库 代码_Java 创建Excel散点图

    散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,表示因变量随自变量而变化的大致趋势,常用于比较跨类别的聚合数据.在excel中,支持创建散点图来实现数据分析,本文将通过java程序代码示例来 ...

最新文章

  1. snowflake算法 php,PHP实现Snowflake生成分布式唯一ID的方法示例
  2. 卸载Internet Explorer 7 Beta 2 Preview引起原来的IE无法正常使用
  3. quill一些插件的配置 注意事项
  4. jvm内存模型和java内存模型_JVM运行时内存模型综述
  5. mysql分表全局查询_mysql如何查询多样同样的表/sql分表查询、java项目日志表分表的开发思路/按月分表...
  6. java第三次实验作业
  7. 【Java从0到架构师】Spring - 生命周期、代理
  8. 关于Cocos2d-x中图集中图片的调用
  9. APS背景和入门基础
  10. oracle数据库创建表空间和表临时空间
  11. php获取qq音乐的api类,利用QQ音乐api集成的php歌曲搜索
  12. 飞鸟尽,良弓藏;狡兔死,走狗烹。
  13. 日语中的-简体与敬体
  14. 关于如何让网站被搜索引擎收录
  15. 新手,如何快速建立一个网站?
  16. Lineage Logistics完成对 UTI Forwarding的收购
  17. 如何划分测试集和训练集
  18. <<计算机操作系统(慕课版)>>第五章参考答案
  19. 【Ubuntu16.04】ROS · Kinetic安装 · 图文教程与问题详解
  20. led灯串怎么摆造型_客厅四周走一圈led灯槽边带吊顶造型效果图

热门文章

  1. QT控件之QComboBox(下拉框相关)
  2. Echarts柱状图常用属性
  3. 敏捷团队章程的实践精要
  4. mac flutter开发环境 flutter环境变量的配置
  5. 【UAV】串级 PID 控制原理及应用
  6. 项目组最重要的三个角色
  7. 反射、注解、字节码、类加载机制
  8. 小程序tabBar图标显示太大
  9. 字模C语言入门,PCtoLCD2002完美版取字模工具软件及其步骤教程
  10. python聚类分析超市_Biopython聚类分析