//创建个excel文件
String path = "E:\\chart.xlsx";
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("sheet");
//添加一些数据
//准备title
XSSFRow row = wb.createRow(0);
for(int i=0;i<13;i++){
row.createCell(i).setCellValue(i+"月份");
}
//数据
XSSFRow row1 = sheet.createRow(1);
row1.createCell(0).setCellValue("数量");
for (int i = 1; i < 13; i++) {
row1.createCell(i).setCellValue(random.nextInt(10));
}
//开始画图
XSSFDrawing drawing = sheet.createDrawingPatriarch();
//规定图的范围
XSSFClientAnchor anchor = drawing.createAnchor(1, 1, 1, 1, 1, 5, 13, 30);
//开始创建图表
XSSFChart chart = drawing.createChart(anchor);
//设计图头
chart.setTitleText("2021年度数据统计");
//获取或添加图例
XDDFChartLegend legend = chart.getOrAddLegend();
//设置图例的位置
legend.setPosition(LegendPosition.BOTTOM);
//创建 类别轴 放置底部
XDDFCategoryAxis bottomAxis = chart.createCategoryAxis(AxisPosition.BOTTOM);
//创建数据轴 放置左侧
XDDFValueAxis leftAxis = chart.createValueAxis(AxisPosition.LEFT);
leftAxis.setTitle("数据");
//创建数据中心 0,0
XDDFCategoryDataSource xs = XDDFDataSourcesFactory.fromStringCellRange(sheet, new CellRangeAddress(0, 0, 1, 12));
XDDFNumericalDataSource<Double> xv = XDDFDataSourcesFactory.fromNumericCellRange(sheet, new CellRangeAddress(1, 1, 1, 12));
//数据先不加载试试
XDDFChartData data = chart.createData(ChartTypes.BAR, bottomAxis, leftAxis);
XDDFChartData.Series series = data.addSeries(xs, xv);
series.setTitle("月份", null);
XDDFBarChartData bar = (XDDFBarChartData) data;
bar.setVaryColors(true);
bar.setBarDirection(BarDirection.COL);
bar.setBarGrouping(BarGrouping.STACKED);
chart.plot(data);
//导出数据
FileOutputStream fos = new FileOutputStream(path);
wb.write(fos);
java 使用poi导出excel柱状图
最新推荐文章于 2024-06-12 11:12:33 发布