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 ...
随机推荐
- PHP 正则表达式抓取网页内容。
我想用php抓取爱奇艺生活类型视频网页里面的元素,应该如何去做呢? 首先我要非常熟悉正则表达式,关于正则表达式的学习,我会写一篇博客一直学习的. 直接举例子: 这是一个爱奇艺生活视频的界面的网址 $u ...
- hdu2896 病毒肆虐【AC自动机】
病毒侵袭 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 【紫书】Quadtrees UVA - 297 四叉树涂色
题意:前序遍历给出两个像素方块.求两个方块叠加后有几个黑色格子. 题解:每次读进来一个方块,就在二维数组上涂色.每次把白色涂黑就cnt++: 具体递归方法是以右上角坐标与边长为参数,每次通过几何规律往 ...
- The "get" method should be used when the form is idempotent---正交的两个概念 get 幂等
https://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.1 17.13.1 Form submission method The me ...
- 20144306《网络对抗》MAL_PC平台逆向破解_Advanced
PC平台逆向破解_Advanced 一.注入shellcode并执行 1.什么是shellcode? shellcode顾名思义就是一段为了获取交互式shell的机器指令,是用来发送到服务器利用特定漏 ...
- MySQL中死锁
1 .死锁的概念 是指两个或两个以上的事务在执行过程中,因争夺资源而造成的一种互相等待的现象.若无外力作用,事务都将无法推进下去,解决死锁的最简单问题是不要有等待,任何的等待都转换为回滚,并且事务重新 ...
- JVM学习笔记-内存管理
第一章 内存分配 1. 内存区域. 方法区和堆(线程共享),程序计数器 , VM栈 和 本地方法栈(线程隔离). 1) java虚拟机栈:线程私有.描写叙述的是java方法执行的内存模 ...
- 上传指定url文件到阿里云oss
好处是不用下载到本地,也不用删除本地文件.省事! 先下载阿里云官方代码 https://github.com/aliyun/aliyun-oss-csharp-sdk 引用其中的 aliyun-os ...
- postman 安装,对elasticsearch进行请求
1 使用postman对elasticsearch进行测试 :下载插件: https://www.getpostman.com/apps ,下载时exe文件,双击自动安装,首次打开注册.下面就可以使 ...
- python中安装requests后又提示错误
刚刚我们是安装成功了的,新建一个项目又提示红色的波浪线了,,郁闷了 解决方法:点击pycharm菜单:File-Settings,键入Project Interpreter,我电脑python安装路径 ...