使用poi操作excel_画图



package com.fujitsu.fb.reporter.subprocess;

import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.*;
import org.apache.poi.ss.usermodel.charts.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**
 * Illustrates how to create a simple scatter chart.
 *
 * @author Roman Kashitsyn
 */
public class ScatterChart
{

 public static void main(String[] args) throws Exception
 {
  Workbook wb = new XSSFWorkbook();
  Sheet sheet = wb.createSheet("Sheet 1");
  final int NUM_OF_ROWS = 3;
  final int NUM_OF_COLUMNS = 10;

  // Create a row and put some cells in it. Rows are 0 based.
  Row row;
  Cell cell;
  for (int rowIndex = 0; rowIndex < NUM_OF_ROWS; rowIndex++)
  {
   row = sheet.createRow((short) rowIndex);
   for (int colIndex = 0; colIndex < NUM_OF_COLUMNS; colIndex++)
   {
    cell = row.createCell((short) colIndex);
    cell.setCellValue(colIndex * (rowIndex + 1));
   }
  }

  Drawing drawing = sheet.createDrawingPatriarch();
  ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 2, 5, 10, 15);//设置坐标

  Chart chart = drawing.createChart(anchor);//创建图表
  ChartLegend legend = chart.getOrCreateLegend();//获取或创建图例
  legend.setPosition(LegendPosition.TOP_RIGHT);//设置图例位置

  ScatterChartData data = chart.getChartDataFactory().createScatterChartData();//获取分散数据

  ValueAxis bottomAxis = chart.getChartAxisFactory().createValueAxis(AxisPosition.BOTTOM);//地轴
  ValueAxis leftAxis = chart.getChartAxisFactory().createValueAxis(AxisPosition.LEFT);//左轴
  leftAxis.setCrosses(AxisCrosses.AUTO_ZERO);//设置自动交叉

  ChartDataSource<Number> xs = DataSources.fromNumericCellRange(sheet,
    new CellRangeAddress(0, 0, 0, NUM_OF_COLUMNS - 1));
  ChartDataSource<Number> ys1 = DataSources.fromNumericCellRange(sheet,
    new CellRangeAddress(1, 1, 0, NUM_OF_COLUMNS - 1));
  ChartDataSource<Number> ys2 = DataSources.fromNumericCellRange(sheet,
    new CellRangeAddress(2, 2, 0, NUM_OF_COLUMNS - 1));

  data.addSerie(xs, ys1);
  data.addSerie(xs, ys2);

  chart.plot(data, bottomAxis, leftAxis);

  String excelPath = "E:\\poi\\ooxml-scatter-chart.xlsx";

  // Write the output to a file
  FileOutputStream fileOut = new FileOutputStream(excelPath);
  wb.write(fileOut);
  fileOut.close();

  System.out.println("----Excle文件已生成------");
 }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值