??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 = https://www.it610.com/article/chart.getChartDataFactory().createScatterChartData();
//获取分散数据ValueAxis bottomAxis = chart.getChartAxisFactory().createValueAxis(AxisPosition.BOTTOM);
//地轴
ValueAxis leftAxis = chart.getChartAxisFactory().createValueAxis(AxisPosition.LEFT);
//左轴
leftAxis.setCrosses(AxisCrosses.AUTO_ZERO);
//设置自动交叉ChartDataSource xs = DataSources.fromNumericCellRange(sheet,
new CellRangeAddress(0, 0, 0, NUM_OF_COLUMNS - 1));
ChartDataSource ys1 = DataSources.fromNumericCellRange(sheet,
new CellRangeAddress(1, 1, 0, NUM_OF_COLUMNS - 1));
ChartDataSource 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文件已生成------");
}
}
【java操作excel之poi|使用poi操作excel_画图】
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)