需求

  • 自定义任务
  • 随机定时
  • 随机排序
  • 集合输出

搭建

  • 简单项目,所以我使用java 的maven来搭建一个控制台程序,并且使用excel来记录任务
  1. 创建任务类(sub
package com.micah;  

import lombok.Data;  

@Data
public class Sub {
private String name;
private Integer id;
private Integer studentTime; public Sub(String name, Integer id, Integer studentTime) {
this.name = name;
this.id = id;
this.studentTime = studentTime;
}
}
  1. 使用poi-ooxml包实现读取excel文件

    • 导入

org.apache.poi

poi-ooxml

3.15

```

- 下面是工具类


package com.micah; import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileInputStream; public class ExcelUtil {
private XSSFSheet sheet; /**
* 构造函数,初始化excel数据
* @param filePath excel路径
* @param sheetName sheet表名
*/
ExcelUtil(String filePath,String sheetName){
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(filePath);
XSSFWorkbook sheets = new XSSFWorkbook(fileInputStream);
//获取sheet
sheet = sheets.getSheet(sheetName);
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 根据行和列的索引获取单元格的数据
* @param row
* @param column
* @return
*/
public String getExcelDateByIndex(int row,int column){
XSSFRow row1 = sheet.getRow(row);
String cell = row1.getCell(column).toString();
return cell;
} /**
* 根据某一列值为“******”的这一行,来获取该行第x列的值
* @param caseName
* @param currentColumn 当前单元格列的索引
* @param targetColumn 目标单元格列的索引
* @return
*/
public String getCellByCaseName(String caseName,int currentColumn,int targetColumn){
String operateSteps="";
//获取行数
int rows = sheet.getPhysicalNumberOfRows();
for(int i=0;i<rows;i++){
XSSFRow row = sheet.getRow(i);
String cell = row.getCell(currentColumn).toString();
if(cell.equals(caseName)){
operateSteps = row.getCell(targetColumn).toString();
break; }
}
return operateSteps;
} public Integer getRow(){
return sheet.getPhysicalNumberOfRows();
}
//打印excel数据
public void readExcelData(){
//获取行数
int rows = sheet.getPhysicalNumberOfRows();
for(int i=0;i<rows;i++){
//获取列数
XSSFRow row = sheet.getRow(i);
int columns = row.getPhysicalNumberOfCells();
for(int j=0;j<columns;j++){
String cell = row.getCell(j).toString();
System.out.println(cell);
}
}
}
}
  1. 使用demo
package com.micah;  

import org.junit.Test;  

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random; public class Demo {
@Test
public void test() { ExcelUtil sheet1 = new ExcelUtil("src/main/resources/micah学习日程.xlsx", "study");
//获取第二行第4列
int arr[]={30,60,90,120};
Random random=new Random();
List<Sub> list=new ArrayList<>();
for (int i = 0; i < sheet1.getRow()-1; i++) {
list.add(new Sub(sheet1.getExcelDateByIndex(i+1, 1),i,arr[random.nextInt(3)]));
}
//根据第3列值为“customer23”的这一行,来获取该行第2列的值
// String cell3 = sheet1.getCellByCaseName("customer23", 2,1);
Collections.shuffle(list);
azaString(list);
// System.out.println(cell3);
} public void azaString(List<Sub> list){
for (Sub sub:list) {
System.out.println("接下来要干的事是: "+sub.getName()+" 时间是:"+sub.getStudentTime());
}
}
}
  1. excel定义

    待完成学习项目 待完成学习项目
    网络安全 网络安全
    绘画+板绘 绘画+板绘
    xxx xxx

运行效果

最新文章

  1. C#中ToString()格式详解
  2. STM32F之IAR6.5 J-Link程序下载错误
  3. linux 下 用户与用户组
  4. UIImagePickerController
  5. s3c6410_uboot中的代码重定位(nand-&gt;sdram)
  6. CCapture directshow 视频捕获类
  7. 又遇BUG-ORA-01148:数据文件忽然变为recover状态
  8. 矩阵取数游戏 NOIP 2007
  9. Fox-H 函数
  10. mysql关键字讲解(join 、order by、group by、having、distinct)
  11. 使用date命令,进行时间戳和日期时间的互转
  12. js 刷新页面大全
  13. FastDFS的学习与使用(大量帖子)
  14. TabBar自定义方式(一)
  15. &lt;select&gt;简易的二级联动
  16. css scale 元素放大缩小效果
  17. (NO.00001)iOS游戏SpeedBoy Lite成形记(十四)
  18. Flask框架搭建REST-API服务
  19. 13、 使用openpyxl存储周杰伦的歌曲信息
  20. plsql导入.dmp, .sql步骤

热门文章

  1. ES系列(七):多节点任务的分发与收集实现
  2. 一个线上 Maven 诡异问题排查过程
  3. 玩转html2canvas以及常见问题解决
  4. 简易版JDBC连接池
  5. 1、SpringBoot整合之SpringBoot整合JSP
  6. 上海某大公司:你是了解Redis对吧?
  7. 21、oracle打开和关闭归档日志的方法
  8. CentOS-yum安装Docker环境(含:常用命令)
  9. MySql:mysql命令行导入导出sql文件
  10. 其他:Git生成SSH、Git生成本地库、下载远程库代码 命令