Java 实现后缀xls文件读取

一、开发环境

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

二,JAR包

三、实现代码

实体类:UserRoleBean

  1. package nc.xyzq.uuib.bean;
  2.  
  3. /**
  4. * ClassName:UserRoleBean
  5. * @author lizm
  6. * @since JDK 1.6
  7. *
  8. */
  9. public class UserRoleBean {
  10.  
  11. private String userCode ;
  12. private String roleid;
  13. private String isflag;
  14.  
  15. public String getUserCode() {
  16. return userCode;
  17. }
  18. public void setUserCode(String userCode) {
  19. this.userCode = userCode;
  20. }
  21. public String getRoleid() {
  22. return roleid;
  23. }
  24. public void setRoleid(String roleid) {
  25. this.roleid = roleid;
  26. }
  27. public String getIsflag() {
  28. return isflag;
  29. }
  30. public void setIsflag(String isflag) {
  31. this.isflag = isflag;
  32. }
  33.  
  34. }

实现读取xls信息类:Client

  1. package nc.xyzq.client;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. import java.util.logging.Logger;
  8.  
  9. import nc.xyzq.pub.Pub;
  10. import nc.xyzq.uuib.service.impl.UserRoleBean;
  11. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  12. import org.apache.poi.ss.usermodel.Cell;
  13. import org.apache.poi.ss.usermodel.Row;
  14. import org.apache.poi.ss.usermodel.Sheet;
  15. import org.apache.poi.ss.usermodel.Workbook;
  16. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  17.  
  18. /**
  19. * ClassName:Client
  20. * Function: TODO
  21. * Reason: TODO
  22. * Date: 2018年11月20日 下午15:59:31
  23. * @author lizm
  24. * @since JDK 1.6
  25. *
  26. */
  27. public class Client {
  28.  
  29. private static final Logger logger = (Logger) Logger.getLogger(Client.class.getName());
  30.  
  31. private List<UserRoleBean> getInfoFromExcle(){
  32. List<UserRoleBean> list = new ArrayList();
  33. //excel文件路径
  34. String excelPath = Pub.getPropertiesValue("relationship", "path");//读取配置文件,例如 D://data/relationship.xls
  35. try {
  36. //String encoding = "GBK";
  37. File excel = new File(excelPath);
  38. if (excel.isFile() && excel.exists()) { //判断文件是否存在
  39. String[] split = excel.getName().split("\\."); //.是特殊字符,需要转义!!!!!
  40. Workbook wb;
  41. //根据文件后缀(xls/xlsx)进行判断
  42. if ( "xls".equals(split[1])){
  43. FileInputStream fis = new FileInputStream(excel); //文件流对象
  44. wb = new HSSFWorkbook(fis);
  45. }
  46. /**
  47. else if ("xlsx".equals(split[1])){
  48. FileInputStream fis = new FileInputStream(excel);
  49. wb = new XSSFWorkbook(fis);
  50. }
  51. */
  52. else {
  53. //System.out.println("文件类型错误!");
  54. logger.info("文件类型错误!");
  55. return list;
  56. }
  57.  
  58. //开始解析
  59. Sheet sheet = wb.getSheetAt(0); //读取sheet 0
  60. int firstRowIndex = sheet.getFirstRowNum()+1; //第一行是列名,所以不读
  61. int lastRowIndex = sheet.getLastRowNum();
  62. //System.out.println("firstRowIndex: "+firstRowIndex);
  63. logger.info("firstRowIndex: "+firstRowIndex);
  64. //System.out.println("lastRowIndex: "+lastRowIndex);
  65. logger.info("lastRowIndex: "+lastRowIndex);
  66. //System.out.println("执行进行中......");
  67. logger.info("执行进行中......");
  68.  
  69. //遍历行
  70. for(int rIndex = firstRowIndex; rIndex <= lastRowIndex; rIndex++) {
  71. //System.out.println("rIndex: " + rIndex);
  72. Row row = sheet.getRow(rIndex);
  73. if (row != null) {
  74. //行中第一个值所在的列序号
  75. int firstCellIndex = row.getFirstCellNum();
  76. //行中最后一个值所在的列序号
  77. int lastCellIndex = row.getLastCellNum();
  78. UserRoleBean userRoleBean = new UserRoleBean();
  79. //遍历列
  80. //for (int cIndex = firstCellIndex; cIndex < lastCellIndex; cIndex++) {
  81. for (int cIndex = 0; cIndex < 3; cIndex++) {
  82. Cell cell = row.getCell(cIndex);
  83. if (cell != null) {
  84. //将表格内容强制转换为字符型
  85. cell.setCellType(Cell.CELL_TYPE_STRING);
  86. //System.out.println(cell.toString());
  87. if(cIndex == 0){
  88. userRoleBean.setUserCode(cell.toString());
  89. }else if(cIndex == 1){
  90. userRoleBean.setRoleid(cell.toString());
  91. }else if(cIndex == 2){
  92. userRoleBean.setIsflag(cell.toString());
  93. }
  94. }
  95. }
  96. if(!("".equals(userRoleBean.getUserCode())) && !("".equals(userRoleBean.getRoleid()))){
  97. //System.out.println(">>>0000000>>:"+userRoleBean.getRoleid());
  98. list.add(userRoleBean);
  99. }
  100. }
  101. }
  102. } else {
  103. //System.out.println("找不到指定的文件");
  104. logger.info("找不到指定的文件");
  105. }
  106. } catch (Exception e) {
  107. e.printStackTrace();
  108. }
  109. return list;
  110. }
  111.  
  112. public static void main(String[] args) {
  113. List<UserRoleBean> list = new ArrayList();
  114. Client client = new Client();
  115. list = client.getInfoFromExcle();
  116. }
  117. }

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. PHP 正则表达式抓取网页内容。

    我想用php抓取爱奇艺生活类型视频网页里面的元素,应该如何去做呢? 首先我要非常熟悉正则表达式,关于正则表达式的学习,我会写一篇博客一直学习的. 直接举例子: 这是一个爱奇艺生活视频的界面的网址 $u ...

  2. hdu2896 病毒肆虐【AC自动机】

    病毒侵袭 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  3. 【紫书】Quadtrees UVA - 297 四叉树涂色

    题意:前序遍历给出两个像素方块.求两个方块叠加后有几个黑色格子. 题解:每次读进来一个方块,就在二维数组上涂色.每次把白色涂黑就cnt++: 具体递归方法是以右上角坐标与边长为参数,每次通过几何规律往 ...

  4. 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 ...

  5. 20144306《网络对抗》MAL_PC平台逆向破解_Advanced

    PC平台逆向破解_Advanced 一.注入shellcode并执行 1.什么是shellcode? shellcode顾名思义就是一段为了获取交互式shell的机器指令,是用来发送到服务器利用特定漏 ...

  6. MySQL中死锁

    1 .死锁的概念 是指两个或两个以上的事务在执行过程中,因争夺资源而造成的一种互相等待的现象.若无外力作用,事务都将无法推进下去,解决死锁的最简单问题是不要有等待,任何的等待都转换为回滚,并且事务重新 ...

  7. JVM学习笔记-内存管理

    第一章 内存分配 1. 内存区域.     方法区和堆(线程共享),程序计数器 , VM栈 和 本地方法栈(线程隔离).     1) java虚拟机栈:线程私有.描写叙述的是java方法执行的内存模 ...

  8. 上传指定url文件到阿里云oss

    好处是不用下载到本地,也不用删除本地文件.省事! 先下载阿里云官方代码  https://github.com/aliyun/aliyun-oss-csharp-sdk 引用其中的 aliyun-os ...

  9. postman 安装,对elasticsearch进行请求

    1  使用postman对elasticsearch进行测试 :下载插件: https://www.getpostman.com/apps ,下载时exe文件,双击自动安装,首次打开注册.下面就可以使 ...

  10. python中安装requests后又提示错误

    刚刚我们是安装成功了的,新建一个项目又提示红色的波浪线了,,郁闷了 解决方法:点击pycharm菜单:File-Settings,键入Project Interpreter,我电脑python安装路径 ...