近期项目属于一个棋牌类项目 用到的配置表比较多 所以在这里 贴一下代码,留下来可以参考。也希望对有需要的朋友有所帮助哦

》1.需求将一个excle表格中的数据 读取 然后封装成自定义的对象,本项目使用的对象如“UserWarProps”里面大概有10个属性

public class UserWarPros {

  public Integer warID;

  //(对战类型,初级中级红包竞技)
  public Integer fightType;

  //该场次基本倍数
  private Integer basemultiple;

  //该场次基本分数
  private Integer baseScore;

  //加入房间消耗的物品ID
  public Integer joinCostItemID;

  //加入房间消耗的物品数量
  public Integer joinCostItemcount;

  //结算所用的物品ID
  public Integer resultItemID;

  //胜利奖励的物品个数
  public Integer winCount;

  //失败扣除的物品个数
  public Integer failCount;

  //破产补贴奖励的物品ID
  public Integer bankruptcyItemID;

  //破产奖励的物品数量
  public Integer bankruptcyItemCount;

  //破产奖励的最大次数
  public Integer bankruptcyMaxPrizeCount;

//构造方法 -- 省略--

}

1.2 下面就是读取的工具类 直接贴代码如下:

// 实现读取EXCLE文件,将读出的信息存放于系统物品奖励规则配置表集合中
public static List<UserWarPros> ReadFromExcel(String fileName) throws Exception {

List<UserWarPros> userWarProsListlist = new ArrayList<UserWarPros>();

File file = new File(fileName);
try {
InputStream in = new FileInputStream(file);
Workbook wb = Workbook.getWorkbook(in); //获得excel文件对象
Sheet s = wb.getSheet(0); //获取文件的指定工作表
// System.out.println(s.getColumns());
// System.out.println(s.getRows());
for (int i = 1; i < s.getRows(); i++) //第一行不要
{
Cell[] row = s.getRow(i);
UserWarPros pros = new UserWarPros(
Integer.parseInt(row[0].getContents()),
Integer.parseInt(row[1].getContents()),
Integer.parseInt(row[2].getContents()),
Integer.parseInt(row[3].getContents()), 
Integer.parseInt(row[4].getContents()),
Integer.parseInt(row[5].getContents()),
Integer.parseInt(row[6].getContents()), 
Integer.parseInt(row[7].getContents()),
Integer.parseInt(row[8].getContents()),
Integer.parseUnsignedInt(row[9].getContents()),
Integer.parseUnsignedInt(row[10].getContents())
);
userWarProsListlist.add(pros);
};

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return userWarProsListlist;
}

/**
* 根据战斗类型获取一个物品奖励对象
* @param fightType
* @param list
* @return
*/
public static UserWarPros getPros (Integer fightType , List<UserWarPros> list){

if(list == null || list.isEmpty())return null;

for (UserWarPros uPs : list) {

if(uPs.getFightType().equals(fightType))return uPs;
}

return null;
}

最后测试数据如下图:

有了这个工具,就可以直接通过文件路径 直接生成一个javabeen集合对象,下面这个方法是通过战斗编号获取一个具体的奖励规则对象;

若对有需要的朋友有帮助,可以参考一下。

但是对象需要自定义一下,若有更好的工具希望给予留言或指正哦

最后还有一个问题:想向大神们请教一下,

就是有关java工程里有一些txt文件或excle.xls等文件 为什么打完jar包 发布到在线服务器上就找不到了这些文件?但是 在本地电脑上运行没关系。

 

通过java读取excle数据的方法,今天用到了留下来供以后参考使用的更多相关文章

  1. Java读取Excel数据

    Java读取Excel数据,解析文本并格式化输出 Java读取Excel数据,解析文本并格式化输出 Java读取Excel数据,解析文本并格式化输出 下图是excel文件的路径和文件名 下图是exce ...

  2. java 读取CSV数据并写入txt文本

    java 读取CSV数据并写入txt文本 package com.vfsd; import java.io.BufferedWriter; import java.io.File; import ja ...

  3. 关于java读取excle文件的相关方法 ;

    1.读取Excle文件内容的方法 拿过来可以直接用 : 2.参照 http://www.anyrt.com/blog/list/importexcel.html#6 更多知识请参考:http://ww ...

  4. java 读取TXT文件的方法

    java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...

  5. java读取TXT文件的方法

    java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...

  6. Java读取xml数据

    xml中的代码 <?xml version="1.0" encoding="UTF-8"?> <books id="aaa" ...

  7. R中读取EXCEL 数据的方法

    最近初学R语言,在R语言读入EXCEL数据格式文件的问题上遇到了困难,经过在网上搜索解决了这一问题,下面归纳几种方法,供大家分享: 第一:R中读取excel文件中的数据的路径: 假定在您的电脑有一个e ...

  8. Java读取CSV数据并写入txt文件

    读取CSV数据并写入txt文件 package com.vfsd; import java.io.BufferedWriter; import java.io.File; import java.io ...

  9. Spark使用Java读取mysql数据和保存数据到mysql

    原文引自:http://blog.csdn.net/fengzhimohan/article/details/78471952 项目应用需要利用Spark读取mysql数据进行数据分析,然后将分析结果 ...

随机推荐

  1. Hash算法总结(转)

    1. Hash是什么,它的作用先举个例子.我们每个活在世上的人,为了能够参与各种社会活动,都需要一个用于识别自己的标志.也许你觉得名字或是身份证就足以代表你这个人,但是这种代表性非常脆弱,因为重名的人 ...

  2. Jenkins问题笔记

    1.启动docker容器权限不足 通过如下命令启动docker容器后,使用命令"docker logs -f jenkins"查看jenkins容器日志, docker run - ...

  3. Redis内存分析工具redis-rdb-tools

    一.安装redis-rdb-tools(项目地址:github) # git clone https://github.com/sripathikrishnan/redis-rdb-tools# cd ...

  4. Neural Network Virtual Machine

    深度学习Stack 为什么提出NNVM? 深度学习框架现状 - “碎片化” 目前,深度学习应用框架呈现出高度的“碎片化(fragmentation)”倾向,这主要是由于下述两个原因: 1. 深度学习正 ...

  5. Day09 -超级经典面试题:Ruby的a ||= b(or-equals)是什么意思呢?

    前情提要: 写了这一系列下来,发现Ruby有许多特别的方法.前几天提到String字串,并且接续着在第八天我们了解串接(concatenate)与插入interpolation#{}方法(就连加号+也 ...

  6. hadoop启动报错:localhost: ssh: Could not resolve hostname localhost

    hadoop启动journalnode时报错:localhost: ssh: Could not resolve hostname localhost: Temporary failure in na ...

  7. vue-router跳转

    当使用$router.push()操作时,如果路由不加反斜杠会自动替换当前路由的最后一个反斜杠后面部分

  8. CSS 图像高级 径向渐变

    径向渐变 径向渐变使用 radial-gradient 函数语法. 这个语法和线性渐变很类似, 可以指定渐变结束时的形状 以及它的大小. 默认来说,结束形状是一个椭圆形并且和容器的大小比例保持一致. ...

  9. 【原创】控制perl和python脚本执行过程中脚本文件是否关闭的方法

    引子 跟踪perl和python脚本对文件的访问,实际过程中,perl和python解析器在解析完脚本后,直接关闭了 脚本文件,在进程中查询不到是访问文件的脚本文件名称. shell.perl和pyt ...

  10. SpringCloud-day05-服务调用Ribbon

    6.服务调用Ribbon 6.1Ribbon简介 前面讲了eureka服务注册与发现,但是结合eureka集群的服务调用并没有谈到.这里就要用到Ribbon,结合eureka,来实现服务的调用: Ri ...