Java 如何生成 Excel 柱状图?
我想通过java代码在一个xlsx文件中生成柱状图,并且导出的时候要与Excel兼容。有什么建议吗?
可以通过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");}
在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