java小程序之随机任务发布器
需求
- 自定义任务
- 随机定时
- 随机排序
- 集合输出
搭建
- 简单项目,所以我使用java 的maven来搭建一个控制台程序,并且使用excel来记录任务
- 创建任务类(
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;
}
}
- 使用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);
}
}
}
}
- 使用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());
}
}
}
excel定义
待完成学习项目 待完成学习项目 网络安全 网络安全 绘画+板绘 绘画+板绘 xxx xxx
运行效果

java小程序之随机任务发布器的更多相关文章
- 输出多行字符的一个简单JAVA小程序
public class JAVA { public static void main(String[] args) { System.out.println("-------------- ...
- 浏览器兼容java小程序配置说明
最近在使用的一个web应用系统是内嵌了java小程序,遇到了各种浏览器兼容性问题,现梳理如下: 1.通过以下链接检测当前电脑是否已经安装有java https://java.com/zh_CN/dow ...
- 框架一般用作Java应用程序的窗口,而Applet是Java小程序的窗口
框架一般用作Java应用程序的窗口,而Applet是Java小程序的窗口. 与Frame不同,Applet是在网页中显示的,也可以通过添加Panel进行组件布局. package TomAwt; im ...
- 微信小程序---协同工作和发布
(1)协同开发和发布 在中大型的公司里,人员的分工非常仔细,一般会有不同岗位角色的员工同时参与同一个小程序项目.为此,小程序平台设计了不同的权限管理使得项目管理者可以更加高效管理整个团队的协同工作. ...
- 微信小程序之商品发布+编辑功能(多图片上传功能)
小程序的商品发布页面:功能有多图片上传 遇到的问题记录一下:1.uploadFile成功之后返回的参数是json字符串,一定要用JSON.parse转换为object格式 2.因为商品发布和编辑都是在 ...
- QQ小程序开发与发布小教程
QQ小程序QQApp,和微信小程序类似,可以直接在手机QQ中直接打开,应用内应用,省去了安装手机APP,非常方便.官方的介绍:QQ小程序为QQ体系下的应用开放平台,可为不同类型的产品提供框架,并在QQ ...
- java 小程序查看器 启动:未初始化小程序 解决方法
欢迎大家转载.为保留作者成果,转载请注明出处,http://blog.csdn.net/netluoriver,有些文件在资源中也能够下载.假设你没有积分.能够联系我索要! 在执行java程序的时候突 ...
- 微信小程序详细图文教程-10分钟完成微信小程序开发部署发布
很多朋友都认为微信小程序申请.部署.发布很难,需要很长时间. 实际上,微信和腾讯云同是腾讯产品,已经提供了10分钟(根据准备资源情况,已完成小程序申请认证)完成小程序开发.部署.发布的方式.当然,实现 ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
随机推荐
- js笔记8
1.js数据类型 基本数据类型:string.undefined.null.boolean.nember 引用数据类型:object.array.function 二者的区别? 基本的数据类型就是简单 ...
- 与KubernetesAPI服务器交互
在介绍过的Downward API提供了一种简单的方式,将pod和容器的元数据传递给在它们内部运行的进程.但这种方式其实仅仅可以暴露一个pod自身的元数据,而且只可以暴露部分元数据.某些情况下,应用需 ...
- Redis的事务不是原子性的
1.事务的四大特性 原子性(Atomicity):化学中的原子指不可再分的基本微粒,数据库中原子性强调事务是一个不可分割的整体,事务开始后所有操作要么全部成功,要么全部失败,不可能停滞在中间某个环节. ...
- linux 查看目录大小
查看当前目录下各个目录大小容量 du -sh * du -sh /app/* du -h --max-depth=1 .
- OpenGL 实用攻关 001 准备(开题)
开篇 这里是OpenGL学习中的随笔,会大致讲述定下的目标需求,思路和贴出认为的关键代码以及git仓库地址.会选择性的讲述途中遇到的陷阱,和注意点. 一些资源 笔者是windows 操作系统 VS 2 ...
- 第5章:资源编排(YAML)
5.1 编写YAML注意事项 YAML 是一种简洁的非标记语言. 语法格式: 缩进表示层级关系 不支持制表符"tab"缩进,使用空格缩进 通常开头缩进 2 个空格 字符后缩进 1 ...
- Unknown custom element: <...> - did you register the component correct?
之前用过的组件没有出现过任何问题,但偏偏在其他目录下引用就出问题了.组件的名称.import的路径都没任何问题,发现这是因为组件name填写不规范所导致的. 在定义组件的时候我们要严格按照官方文档要求 ...
- 用Spingboot获得微信小程序的Code以及openid和sessionkey
这篇文章主要写的是怎么用spingboot来获取微信小程序的Code以及openid和sessionke,我觉得已经很详细了 我们要获得openid和sessionkey,就必须先要获得code, ...
- CentOS-Docker搭建Nacos-v1.1.4(单点)
通用属性配置(v1.1.4) name description option MODE cluster模式/standalone模式 cluster/standalone default cluste ...
- Android java层常见加密算法的hook自吐以及栈信息的打印
杂谈:其实原理并没有很难,本质就是hook Android的框架层中的api将我们想要的key和iv(也可以没有,就打个比方),但是目前的话,很多厂家已经不在直接调用java层的这些加密算法的api了 ...