当前位置: 首页 > 知识库问答 >
问题:

java - Java 如何生成 Excel 柱状图?

公良安邦
2023-12-06

Java 如何生成 Excel 柱状图?

我想通过java代码在一个xlsx文件中生成柱状图,并且导出的时候要与Excel兼容。有什么建议吗?

共有2个答案

陆翔飞
2023-12-06

可以通过GcExcel来实现柱状图,GcExcel支持各种Excel图表,具体可以参考:
图表类型 - GcExcel 中文文档Java版 | 服务端高性能表格组件 - 葡萄城
生成柱状图的代码如下:

public void CreateColumnChart() {    // Create a new workbook    Workbook workbook = new Workbook();    IWorksheet worksheet = workbook.getWorksheets().get(0);    IShape shape = worksheet.getShapes().addChart(ChartType.ColumnClustered, 250, 20, 360, 230);    worksheet.getRange("A1:C6").setValue(new Object[][]{            {103, 121, 109},            {56, 94, 115},            {116, 89, 99},            {55, 93, 70},            {114, 114, 83},            {125, 138, 136}    });    shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:C6"), RowCol.Columns);    shape.getChart().getChartTitle().setText("Column Clustered Chart");    // Save to an excel file    workbook.save("output/ColumnClusteredChart.xlsx");}
吕天逸
2023-12-06

在Java中生成Excel柱状图,你可以使用Apache POI库,这是一个非常强大的库,可以处理Microsoft Office的所有文件格式。

首先,你需要添加Apache POI库的依赖。如果你使用Maven,你可以在pom.xml文件中添加以下依赖:

<dependencies>    <dependency>        <groupId>org.apache.poi</groupId>        <artifactId>poi-ooxml</artifactId>        <version>5.0.0</version> <!-- 请检查是否有更新的版本 -->    </dependency></dependencies>

然后,你可以使用以下代码创建一个柱状图:

import org.apache.poi.ss.usermodel.*;import org.apache.poi.ss.util.*;import org.apache.poi.xssf.usermodel.*;import org.apache.poi.xssf.usermodel.charts.*;import java.io.FileOutputStream;import java.io.IOException;import java.util.List;public class ExcelChartGenerator {    public static void main(String[] args) throws IOException {        XSSFWorkbook workbook = new XSSFWorkbook(); // 创建一个新的Excel工作簿        XSSFSheet sheet = workbook.createSheet("Chart Data"); // 创建一个新的工作表        final XSSFDrawing drawing = sheet.createDrawingPatriarch(); // 为工作表添加绘图区域        final XSSFClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 3, 3, 10, 20); // 创建锚点以放置图表        final XSSFChart chart = drawing.createChart(anchor); // 为工作表添加图表        final XSSFChartLegend legend = chart.getOrCreateLegend(); // 为图表添加图例        legend.setPosition(LegendPosition.BOTTOM); // 设置图例的位置为底部        XSSFChartAxis bottomAxis = chart.getChartAxisFactory().createCategoryAxis(AxisPosition.BOTTOM); // 创建底部坐标轴        XSSFValueAxis leftAxis = chart.getChartAxisFactory().createValueAxis(AxisPosition.LEFT); // 创建左侧坐标轴        leftAxis.setCrosses(AxisCrosses.AUTO_ZERO); // 设置左侧坐标轴与底部坐标轴交叉于自动零点处        chart.plot(createChartData(), bottomAxis, leftAxis); // 创建并绘制柱状图,使用左侧坐标轴和底部坐标轴        FileOutputStream fileOut = new FileOutputStream("workbook.xlsx"); // 创建文件输出流以保存工作簿到文件        workbook.write(fileOut); // 将工作簿写入文件输出流中        fileOut.close(); // 关闭文件输出流    }    private static XSSFChartDataSource<String> createCategoryData() {        List<String> categories = List.of("A", "B", "C", "D", "E"); // 创建类别数据列表        return XSSFDataUtil.createCategoryDataSource(categories); // 返回类别数据源对象    }    private static XSSFChartDataSource<Number> createNumericData() {        List<Double> values = List.of(10, 20, 30, 40, 50); // 创建数值数据列表        return XSSFDataUtil.createValueDataSource(values); // 返回数值数据源对象    }    private static XSSFChartData createChartData() {        XSSFChartData chartData = chartFactory.createBarChartData(); // 创建柱状图数据对象
 类似资料:
  • 通过Java 导出 Excel 数据能不能生成柱状图和饼图 目前没有找到什么合适的方法,主要是需要输出图表结构到文件中给客户

  • Java 如何否生成 Excel 气泡图? rt

  • 本文向大家介绍asp.net中生成饼状与柱状图实例,包括了asp.net中生成饼状与柱状图实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了asp.net中生成饼状与柱状图的实现方法。分享给大家供大家参考。具体方法如下: 一、生成图形的公共方法: 二、新建生成饼状柱状图页面BZImage.aspx: 后台: 三、显示饼状柱状图的页面: 前台: 希望本文所述对大家的asp.net程序设计有

  • 如何使用java给POI生成的Excel文件添加 Border呢?求助下方案

  • Java 中如何给POI生成的Excel文件添加 Border, 如下图所示:

  • 问题内容: 我想用Java生成一个.torrent文件,但是我不想要一个大的API,它可以执行诸如抓取跟踪器,种子等操作。这仅适用于生成元数据的客户端。存在哪些轻量级解决方案?我只生成一个.zip文件的.torrent。 谢谢! 问题答案: 我整理了这段独立的Java代码,以准备一个带有单个文件的.torrent文件。 通过调用.torrent文件的名称,共享文件的名称和跟踪器URL 来创建.to