Java 实现后缀xls文件读取

一、开发环境

  poi采用的3.9版本 + JDK1.6 + Myeclipse

二,JAR包

三、实现代码

实体类:UserRoleBean

package nc.xyzq.uuib.bean;  

/**
* ClassName:UserRoleBean
* @author lizm
* @since JDK 1.6
*
*/
public class UserRoleBean { private String userCode ;
private String roleid;
private String isflag; public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public String getRoleid() {
return roleid;
}
public void setRoleid(String roleid) {
this.roleid = roleid;
}
public String getIsflag() {
return isflag;
}
public void setIsflag(String isflag) {
this.isflag = isflag;
} }

实现读取xls信息类:Client

package nc.xyzq.client;

import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger; import nc.xyzq.pub.Pub;
import nc.xyzq.uuib.service.impl.UserRoleBean;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; /**
* ClassName:Client
* Function: TODO
* Reason: TODO
* Date: 2018年11月20日 下午15:59:31
* @author lizm
* @since JDK 1.6
*
*/
public class Client { private static final Logger logger = (Logger) Logger.getLogger(Client.class.getName()); private List<UserRoleBean> getInfoFromExcle(){
List<UserRoleBean> list = new ArrayList();
//excel文件路径
String excelPath = Pub.getPropertiesValue("relationship", "path");//读取配置文件,例如 D://data/relationship.xls
try {
//String encoding = "GBK";
File excel = new File(excelPath);
if (excel.isFile() && excel.exists()) { //判断文件是否存在
String[] split = excel.getName().split("\\."); //.是特殊字符,需要转义!!!!!
Workbook wb;
//根据文件后缀(xls/xlsx)进行判断
if ( "xls".equals(split[1])){
FileInputStream fis = new FileInputStream(excel); //文件流对象
wb = new HSSFWorkbook(fis);
}
/**
else if ("xlsx".equals(split[1])){
FileInputStream fis = new FileInputStream(excel);
wb = new XSSFWorkbook(fis);
}
*/
else {
//System.out.println("文件类型错误!");
logger.info("文件类型错误!");
return list;
} //开始解析
Sheet sheet = wb.getSheetAt(0); //读取sheet 0
int firstRowIndex = sheet.getFirstRowNum()+1; //第一行是列名,所以不读
int lastRowIndex = sheet.getLastRowNum();
//System.out.println("firstRowIndex: "+firstRowIndex);
logger.info("firstRowIndex: "+firstRowIndex);
//System.out.println("lastRowIndex: "+lastRowIndex);
logger.info("lastRowIndex: "+lastRowIndex);
//System.out.println("执行进行中......");
logger.info("执行进行中......"); //遍历行
for(int rIndex = firstRowIndex; rIndex <= lastRowIndex; rIndex++) {
//System.out.println("rIndex: " + rIndex);
Row row = sheet.getRow(rIndex);
if (row != null) {
//行中第一个值所在的列序号
int firstCellIndex = row.getFirstCellNum();
//行中最后一个值所在的列序号
int lastCellIndex = row.getLastCellNum();
UserRoleBean userRoleBean = new UserRoleBean();
//遍历列
//for (int cIndex = firstCellIndex; cIndex < lastCellIndex; cIndex++) {
for (int cIndex = 0; cIndex < 3; cIndex++) {
Cell cell = row.getCell(cIndex);
if (cell != null) {
//将表格内容强制转换为字符型
cell.setCellType(Cell.CELL_TYPE_STRING);
//System.out.println(cell.toString());
if(cIndex == 0){
userRoleBean.setUserCode(cell.toString());
}else if(cIndex == 1){
userRoleBean.setRoleid(cell.toString());
}else if(cIndex == 2){
userRoleBean.setIsflag(cell.toString());
}
}
}
if(!("".equals(userRoleBean.getUserCode())) && !("".equals(userRoleBean.getRoleid()))){
//System.out.println(">>>0000000>>:"+userRoleBean.getRoleid());
list.add(userRoleBean);
}
}
}
} else {
//System.out.println("找不到指定的文件");
logger.info("找不到指定的文件");
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
} public static void main(String[] args) {
List<UserRoleBean> list = new ArrayList();
Client client = new Client();
list = client.getInfoFromExcle();
}
}

Java 实现后缀xls文件读取的更多相关文章

  1. Java学习-013-文本文件读取实例源代码(两种数据返回格式)

    此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 1.读取的文本文件内容以一维数组[LinkedList<String>]的形式返回,源代 ...

  2. java上传xls文件

    using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System. ...

  3. java与Excel (.xls文件) ---使用JXL创建,增添表格文件

    由于一些原因要搞一下excel文件,个人感觉poi太难,所以用了JXL(感觉比较简单). 1.添加外部归档 jxl.jar 2. /** 生成的xls文件第一次需要手动选择EXCEL打开* * */ ...

  4. Java中IO流文件读取、写入和复制

    //构造文件File类 File f=new File(fileName); //判断是否为目录 f.isDirectory(); //获取目录下的文件名 String[] fileName=f.li ...

  5. JAVA 中文 unicode 相互转换 文件读取

    package com.test; import org.junit.Test; public class JunitTest { @Test public void test(){ String p ...

  6. Java代码操作properties文件(读取,新增/修改,删除)

    项目中需要用到操作properties文件中的数据,记录一下 package com.bonc.savepic.save; import java.io.FileNotFoundException; ...

  7. Linux 读取 (*.xls)文件读取,使用libxls库

    首先下载libxls,项目地址:http://sourceforge.net/projects/libxls/,备用下载:libxls-1.4.0.zip 解压后使用: ./configure --p ...

  8. Java学习-017-EXCEL 文件读取实例源代码

    众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...

  9. java poi导入EXCEL xls文件代码

    /** * */ package com.bn.car.common.report.excel; import java.io.FileInputStream; import java.io.IOEx ...

随机推荐

  1. opencv学习笔记霍夫变换——直线检测

    参考大佬博文:blog.csdn.net/jia20003/article/details/7724530 lps-683.iteye.com/blog/2254368 openCV里有两个函数(比较 ...

  2. queue hardware os

    Computer Science An Overview 11th Edition Queues are often used as the underlying structure of a buf ...

  3. Ancient Go---hdu5546(dfs爆搜CCPC题目)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5546 题意就是两个人下围棋,问在下一颗x是否能杀死o,'.'是空位子: 枚举所有的点,判断是否合法即可 ...

  4. Chrome百度不显示中文字体

    chrome://flags/ 启用DirectWrite 关闭就可以了

  5. gulp-jshint使用说明

    hint是暗示的意思,jshint是什么意思? 1.使用npm安装 cnpm i --save-dev gulp-jshint jshint ps:gulp-jshint和jshnt要一起下载,安装. ...

  6. Java - Spring AOP 拦截器的基本实现

    一个程序猿在梦中解决的 Bug 没有人是不做梦的,在所有梦的排行中,白日梦最令人伤感.不知道身为程序猿的大家,有没有睡了一觉,然后在梦中把睡之前代码中怎么也搞不定的 Bug 给解决的经历?反正我是有过 ...

  7. 【转】锁(lock)知识及锁应用

    sql server锁(lock)知识及锁应用转自:http://blog.csdn.net/huwei2003/article/details/4047191 关键词:锁提示,锁应用 提示:这里所摘 ...

  8. dedecms提取某栏目及子栏目名称到首页怎么弄

    我们建网站时有不同的需求,例如为页面创建一个栏目导航,用dedecms如何提取某栏目及子栏目名称和链接呢?如下图所示,先列出指定的顶级栏目,在下方再列出此栏目的所有子栏目. 之前ytkah说过dede ...

  9. 003-redis-命令-key操作,字符串操作

    Redis 键(key) Redis 键命令用于管理 redis 的键. 序号 命令及描述 1 DEL key该命令用于在 key 存在时删除 key. 2 DUMP key 序列化给定 key ,并 ...

  10. 在Keras模型中one-hot编码,Embedding层,使用预训练的词向量/处理图片

    最近看了吴恩达老师的深度学习课程,又看了python深度学习这本书,对深度学习有了大概的了解,但是在实战的时候, 还是会有一些细枝末节没有完全弄懂,这篇文章就用来总结一下用keras实现深度学习算法的 ...