前言:

上篇文章已经介绍了,如何获取Android客户端性能:内存、流量、CPU、启动时间数据,并存入EXCEL中。

java代码获取Android客户端性能数据并写入Excel表

接下来简单分享下如何将获取到的数据从EXCEL中取出并绘制折线图。

一、读取EXCEL中的数据

//获取表格数据@SuppressWarnings("unused")private String[][]  readXls() throws IOException{  String [][]array2 = new String[10][3];InputStream in = new FileInputStream( "D:\\java_workspace\\手机客户端性能测试表.xls");  @SuppressWarnings("resource")HSSFWorkbook hssfWorkbook = new HSSFWorkbook(in);   // 循环工作表Sheet  for(int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++){  HSSFSheet hssfSheet = hssfWorkbook.getSheetAt( numSheet);  if(hssfSheet == null){  continue;  }  // 循环行Row   for(int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++){  HSSFRow hssfRow = hssfSheet.getRow( rowNum);  if(hssfRow == null){  continue;  }  // 循环列Cell    for(int cellNum = 0; cellNum <= hssfRow.getLastCellNum(); cellNum++){  HSSFCell hssfCell = hssfRow.getCell( cellNum);  if(hssfCell == null){  continue;  } array2[rowNum-1][cellNum]=getValue(hssfCell);System.out.print( getValue(hssfCell)+"   " );}  System.out.println();  }  }  return array2;}  //读取单元格@SuppressWarnings({ "static-access", "deprecation" })  private String getValue(HSSFCell hssfCell){  if(hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN){  return String.valueOf( hssfCell.getBooleanCellValue());  }else if(hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC){  return String.valueOf( hssfCell.getNumericCellValue());  }else{  return String.valueOf( hssfCell.getStringCellValue());  }  } 

二、绘制折线图:

1、收集数据

//收集数据public  CategoryDataset createDataset(int type) {DefaultCategoryDataset dataset = new DefaultCategoryDataset();  String series="内存曲线";   //曲线名称if(type==0){series="内存曲线";}else if(type==1){series="CPU曲线";}else if(type==2){series="流量曲线";}String [][]array3 = new String[10][3];try {array3=readXls();} catch (IOException e) {e.printStackTrace();}for(int i=0;i<10;i++){// dataset.addValue(9, series, "1");  //参数分别是纵轴值、曲线名称、横轴值dataset.addValue(Double.valueOf(array3[i][type]), series,String.valueOf(i+1));  //参数分别是纵轴值、曲线名称、横轴值}return dataset;}

2、绘制图像

// 创建图像public void createChart(CategoryDataset dataset,int type) {JFreeChart chart = ChartFactory.createLineChart("内存图", "测试时间(s)","内存(K)", dataset, PlotOrientation.VERTICAL, true, true,true);if(type==0){chart = ChartFactory.createLineChart("内存图", "测试时间(s)","内存(K)", dataset, PlotOrientation.VERTICAL, true, true,true);}else if(type==1){chart = ChartFactory.createLineChart("CPU图", "测试时间(s)","CPU(%)", dataset, PlotOrientation.VERTICAL, true, true,true);}else if(type==2){chart = ChartFactory.createLineChart("流量图", "测试时间(s)","流量(K)", dataset, PlotOrientation.VERTICAL, true, true,true);}CategoryPlot cp = chart.getCategoryPlot();cp.setBackgroundPaint(ChartColor.WHITE); // 背景色设置cp.setRangeGridlinePaint(ChartColor.GRAY); // 网格线色设置cp.setDomainGridlinePaint(ChartColor.BLACK);cp.setNoDataMessage("没有数据");// 数据轴属性部分NumberAxis rangeAxis = (NumberAxis) cp.getRangeAxis();rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());rangeAxis.setAutoRangeIncludesZero(true); // 自动生成rangeAxis.setUpperMargin(0.20);rangeAxis.setLabelAngle(Math.PI / 2.0);rangeAxis.setAutoRange(false);// 数据渲染部分 主要是对折线做操作CategoryPlot plot = chart.getCategoryPlot();LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();renderer.setBaseItemLabelsVisible(true);// 设置曲线是否显示数据点// 设置曲线显示各数据点的值renderer.setSeriesPaint(0, Color.black); // 设置折线的颜色renderer.setBaseShapesFilled(true);renderer.setBaseItemLabelsVisible(true);renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());// 解决中文乱码问题chart.getTitle().setFont(new Font("宋体", Font.BOLD, 15));chart.getLegend().setItemFont(new Font("黑体", Font.BOLD, 15));CategoryAxis domainAxis = plot.getDomainAxis();/*------设置X轴坐标上的文字-----------*/domainAxis.setTickLabelFont(new Font("黑体", Font.PLAIN, 11));/*------设置X轴的标题文字------------*/domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();/*------设置Y轴坐标上的文字-----------*/numberaxis.setTickLabelFont(new Font("黑体", Font.PLAIN, 12));/*------设置Y轴的标题文字------------*/numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));// 创建窗口,并打印出来JPanel jPanel = new ChartPanel(chart);JFrame frame = new JFrame("性能-折线图");frame.add(jPanel);frame.setBounds(100, 100, 800, 600);frame.setVisible(true);} 

其中注意解决乱码问题。

三、main主函数运行:

public static void main(String args[]) throws IOException,InterruptedException {
LineXYChart xyChartMemory=new LineXYChart();
CategoryDataset datasetMemory=xyChartMemory.createDataset(0);
xyChartMemory.createChart(datasetMemory,0);
LineXYChart xyChartCPU=new LineXYChart();
CategoryDataset datasetCPU=xyChartCPU.createDataset(1);
xyChartCPU.createChart(datasetCPU,1);
LineXYChart xyChartFlow=new LineXYChart();
CategoryDataset datasetFlow=xyChartFlow.createDataset(2);
xyChartFlow.createChart(datasetFlow,2);
}

四、运行结果:

java代码取出EXCEL表数据并画折线图相关推荐

  1. python导入数据画折线图_Python读取Excel表格,并同时画折线图和柱状图的方法

    今日给大家分享一个Python读取Excel表格,同时采用表格中的数值画图柱状图和折线图,这里只需要几行代码便可以实. 首先我们需要安装一个Excel操作的库xlrd,这个很简单,在安装Python后 ...

  2. 用python读取excel数据、并作图_Python读取Excel表格,并同时画折线图和柱状图的方法...

    今日给大家分享一个Python读取Excel表格,同时采用表格中的数值画图柱状图和折线图,这里只需要几行代码便可以实. 首先我们需要安装一个Excel操作的库xlrd,这个很简单,在安装Python后 ...

  3. python画柱状图和折线图-Python读取Excel表格,并同时画折线图和柱状图的方法

    今日给大家分享一个Python读取Excel表格,同时采用表格中的数值画图柱状图和折线图,这里只需要几行代码便可以实. 首先我们需要安装一个Excel操作的库xlrd,这个很简单,在安装Python后 ...

  4. java代码实现excel文件数据导入

    因业务需求要实现数据的批量导入,给了指定的excel模板上传文件,用java代码实现导入excel文件. 重新复习下. 下面是源码,仅供参考. controller层代码,创建临时目录后,使用Disk ...

  5. 用java把excel数据导入oracle日期转换,Java代码兑现excel数据导入到Oracle

    Java代码实现excel数据导入到Oracle 1.首先需要两个jar包jxl.jar,ojdbc.jar(注意版本,版本不合适会报版本错误) 2.代码: import java.io.File; ...

  6. echarts画折线图和数据excel导出

    最近一直使用echarts画折线图,在此做个记录 最后样式 代码 <!DOCTYPE html> <html style="height: 100%">&l ...

  7. 解决如何使用layui导入Excel表数据

    解决如何使用layui导入Excel表数据 1.前端页面html代码展示 <button type="button" lay-submit="" clas ...

  8. JAVA实现创建Excel表并导出(转发)

    JAVA实现创建Excel表并导出(转发) 最近在做毕设,要求导出word,excel,pdf,这是excel. 原文是:http://blog.csdn.net/u014621859/article ...

  9. 利用java poi对excel表的读写操作

    2019独角兽企业重金招聘Python工程师标准>>> 利用java poi对excel表的读写操作 POI简介: Apache POI是一种流行的API,它允许程序员使用Java程 ...

  10. python怎么从excel获取数据_python如何读取excel表数据

    python读取excel表数据的方法:首先安装Excel读取数据的库xlrd:然后获取Excel文件的位置并且读取进来:接着读取指定的行和列的内容,并将内容存储在列表中:最后运行程序即可. pyth ...

最新文章

  1. 2015_8_21作业——有自翻译有复制他人的英语太差
  2. sqlserver转oracle后nvchar2(char),Oracle(二)老师
  3. java calendar字符串显示_Java获取当前时间年月日、时间格式化打印、字符串转日期...
  4. TensorFlow, PyTorch, Caffe2的比较
  5. 自增或自减例子:i++和++i的相同点和不同点
  6. python观察日志(part24)--列表和numpy数组扁平化
  7. 建模师分类:选择游戏还是工业?哪个发展前景更好?
  8. Android在Android.mk里添加TAG
  9. access通过身份证号提取性别_从身份证号码中提取出生年月,性别等都不掌握,那就真的Out了...
  10. 蒸汽管道图纸符号_供热循环系统“30问”(附管网图常见符号图例)
  11. latex中文小标题_latex定制标题样式
  12. 中国ROHS 2.0 ---sj/t 11364-2014
  13. 洛谷 P1725 琪露诺 题解
  14. this的理解 转https://www.cnblogs.com/pssp/p/5216085.html#!comments
  15. GraphSage:Inductive Representation Learning on Large Graphs
  16. 微信打不开链接怎么办,微信跳转外部浏览器打开
  17. 苹果2022春季新品发布会 苹果春季新品发布会直播地址
  18. php活体检测,双目活体检测摄像头,人脸识别SDK,红外活体算法
  19. (C语言)学生管理系统
  20. ubuntu 命令笔记

热门文章

  1. GATK / 体细胞短变异检测工具Mutect2的使用
  2. android修改shell串口号,[Note] 2021-01-15 Android shell/串口中使用 wpa_cli 连接Wi-Fi
  3. OpenCV之图像锐化
  4. JMeter 修改字体大小
  5. 如何看懂计算机英文文档,如何看英文技术文档
  6. 乘幂法求矩阵的特征值及特征向量
  7. 快手加抖音自动刷视频脚本,引用的是python+易语言编程
  8. HTML怎么使表格居中显示
  9. Qt实现图片的简单压缩
  10. 软件架构师必考概念整理