Java 实现后缀xls文件读取
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文件读取的更多相关文章
- Java学习-013-文本文件读取实例源代码(两种数据返回格式)
此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 1.读取的文本文件内容以一维数组[LinkedList<String>]的形式返回,源代 ...
- java上传xls文件
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System. ...
- java与Excel (.xls文件) ---使用JXL创建,增添表格文件
由于一些原因要搞一下excel文件,个人感觉poi太难,所以用了JXL(感觉比较简单). 1.添加外部归档 jxl.jar 2. /** 生成的xls文件第一次需要手动选择EXCEL打开* * */ ...
- Java中IO流文件读取、写入和复制
//构造文件File类 File f=new File(fileName); //判断是否为目录 f.isDirectory(); //获取目录下的文件名 String[] fileName=f.li ...
- JAVA 中文 unicode 相互转换 文件读取
package com.test; import org.junit.Test; public class JunitTest { @Test public void test(){ String p ...
- Java代码操作properties文件(读取,新增/修改,删除)
项目中需要用到操作properties文件中的数据,记录一下 package com.bonc.savepic.save; import java.io.FileNotFoundException; ...
- Linux 读取 (*.xls)文件读取,使用libxls库
首先下载libxls,项目地址:http://sourceforge.net/projects/libxls/,备用下载:libxls-1.4.0.zip 解压后使用: ./configure --p ...
- Java学习-017-EXCEL 文件读取实例源代码
众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...
- java poi导入EXCEL xls文件代码
/** * */ package com.bn.car.common.report.excel; import java.io.FileInputStream; import java.io.IOEx ...
随机推荐
- PKCS 发布的15 个标准与X509
PKCS 发布的15 个标准,转自:http://falchion.iteye.com/blog/1472453 PKCS 全称是 Public-Key Cryptography Standards ...
- FTP的两种主动模式和被动模式
参考:https://blog.csdn.net/xqhrs232/article/details/54633006 https://blog.csdn.net/yuanhangq220/articl ...
- 在ubuntu下安装使用latex
参考:https://www.cnblogs.com/longdouhzt/archive/2012/09/27/2706358.html https://jingyan.baidu.com/albu ...
- 2018牛客网暑期ACM多校训练营(第五场) E - room - [最小费用最大流模板题]
题目链接:https://www.nowcoder.com/acm/contest/143/E 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K ...
- 自定义maven插件
之前虽然一直知道maven插件是可以自定义的,不过一致没有用过.最近接触到了swagger项目中的codegen自动生成代码的功能,并且在codegen源码中,也是存在maven插件功能的,所以自己就 ...
- MySQL锁定状态查看相关命令
1.show processlist; SHOW PROCESSLIST显示哪些线程正在运行.您也可以使用mysqladmin processlist语句得到此信息.如果您有SUPER权限,您可以看到 ...
- nautilus
在~/.bashrc中定义命令别名,添加以下命令: # some more nautilus aliases alias here='nautilus . > /dev/null 2>&a ...
- 自定义vueawesomeswiper分页器样式
swiperOption: {//swiper的配置项 notNextTick: true,//想获得swiper实例对象,这个必须为true direction: 'vertical', // gr ...
- easyui DataGrid表体单元格跨列rowspan
最近做项目用到了jquery easyui,其中一组DataGrid做的报表是给客户大领导看的,客户要求报表样式跟他们原有系统的一模一样(如下图1). DataGrid样式好调,只是城市名称单元格跨行 ...
- linux,centOS,用LNMP搭建wordpress,更新固定连接--全流程
下午到晚上的时间,买了个linux服务器,用的centOS系统,遇到各种问题! 1.用putty,ssh到vps后,根据网上命令,一步步下载并安装,具体步骤可以看一下网上教程,LNMP.org站上的教 ...