在上一篇博客《从复杂到简单,大道至简》中说道我们要把复杂的问题简单化,也就是要把问题细分,让大问题变成小问题,这样解决起来会相对容易,当我们把容易的小问题解决掉了,大问题自动就会迎刃而解。

所以今天这篇博客是继续那个主体来说,因为权限管理项目里面涉及到了批量导入的功能,我的上篇博客也对这个功能业务单元细分了几个小问题,其中一个就是要会利用jxl包中的类来读取excel中的数据,

所以今天就说说如果利用这个包中的类来读取excel的数据。当把我下面说的几个方法学会了之后,我想读取excel数据是非常简单的。

先说一下jxl包,它是通过java操作excel表格的工具类库,并不依赖windows系统平台。

这里我仅仅介绍一下jxl这个包中的几个比较重要的类,因为会了这几个我感觉一般的问题就能够解决,如果还想继续深入的话,可以下载jxl.jar并且进行深入研究,写几个DEMO就能够掌握。

先说一下,Workbook类提供的方法:

1.intgetNumberOfSheets();获得工作薄(Workbook)中工作表(Sheet)的个数,示例:

[java] view plaincopyprint?
  1. jxl.Workbook rwb =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

jxl.Workbook rwb =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

[java] view plaincopyprint?
  1. int sheets = rwb.getNumberOfSheets();

int sheets = rwb.getNumberOfSheets();

2.Sheet[]getSheets();返回工作薄(Workbook)中工作表(Sheet)对象数组,示例:

[java] view plaincopyprint?
  1. jxl.Workbook rwb2 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

jxl.Workbook rwb2 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

[java] view plaincopyprint?
  1. Sheet[] sheets2 = (Sheet[]) rwb2.getSheets();

Sheet[] sheets2 = (Sheet[]) rwb2.getSheets();

3.StringgetVersion();返回正在使用的API的版本号,好像是没什么太大的作用。示例:

[java] view plaincopyprint?
  1. jxl.Workbook rwb3 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

jxl.Workbook rwb3 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

[java] view plaincopyprint?
  1. String apiVersion = rwb3.getVersion();

String apiVersion = rwb3.getVersion();

在说一下,Sheet接口提供的方法

1. StringgetName();获取Sheet的名称,示例:

[java] view plaincopyprint?
  1. jxl.Workbook rwb4 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

jxl.Workbook rwb4 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

[java] view plaincopyprint?
  1. jxl.Sheet rs = rwb4.getSheet(0);

jxl.Sheet rs = rwb4.getSheet(0);

[java] view plaincopyprint?
  1. String sheetName = rs.getName();

String sheetName = rs.getName();

2.intgetColumns();获取Sheet表中所包含的总列数,示例:

[java] view plaincopyprint?
  1. jxl.Workbook rwb5 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

jxl.Workbook rwb5 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

[java] view plaincopyprint?
  1. jxl.Sheet rs2 = rwb5.getSheet(0);

jxl.Sheet rs2 = rwb5.getSheet(0);

[java] view plaincopyprint?
  1. int rsColumns = rs2.getColumns();

int rsColumns = rs2.getColumns();

3.Cell[]getColumn(int column)获取某一列的所有单元格,返回的是单元格对象数组,示例:

[java] view plaincopyprint?
  1. jxl.Workbook rwb6 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

jxl.Workbook rwb6 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

[java] view plaincopyprint?
  1. jxl.Sheet rs3 = rwb6.getSheet(0);

jxl.Sheet rs3 = rwb6.getSheet(0);

[java] view plaincopyprint?
  1. Cell[] cell = rs3.getColumn(0);

Cell[] cell = rs3.getColumn(0);

4.intgetRows()获取Sheet表中所包含的总行数,示例:

[java] view plaincopyprint?
  1. jxl.Workbook rwb7 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

jxl.Workbook rwb7 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

[java] view plaincopyprint?
  1. jxl.Sheet rs4 = rwb7.getSheet(0);

jxl.Sheet rs4 = rwb7.getSheet(0);

[java] view plaincopyprint?
  1. int rsRows = rs4.getRows();

int rsRows = rs4.getRows();

5.Cell[]getRow(int row)获取某一行的所有单元格,返回的是单元格对象数组,示例子:

[java] view plaincopyprint?
  1. jxl.Workbook rwb8 = jxl.Workbook.getWorkbook(newFile("D:/user.xls"));

jxl.Workbook rwb8 = jxl.Workbook.getWorkbook(newFile("D:/user.xls"));

[java] view plaincopyprint?
  1. jxl.Sheet rs5 = rwb8.getSheet(0);

jxl.Sheet rs5 = rwb8.getSheet(0);

[java] view plaincopyprint?
  1. Cell[] cell5 = rs5.getRow(0);

Cell[] cell5 = rs5.getRow(0);

6.CellgetCell(int column, int row);获取指定单元格的对象引用,需要注意的是它的两个参数,第一个是列数,第二个是行数,示例:

[java] view plaincopyprint?
  1. jxl.Workbook rwb9 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

jxl.Workbook rwb9 =jxl.Workbook.getWorkbook(new File("D:/user.xls"));

[java] view plaincopyprint?
  1. jxl.Sheet rs6 = rwb9.getSheet(0);

jxl.Sheet rs6 = rwb9.getSheet(0);

[java] view plaincopyprint?
  1. Cell cell6 = rs6.getCell(0, 0);

Cell cell6 = rs6.getCell(0, 0);

有了这些知识之后我们可以做一个简单的demo,经过这个demo之后那么我们就知道怎么用java读取excel表中的数据了。

Demo--代码:

[java] view plaincopyprint?
  1. public class aaa {
  2. public static void main(String [] args){
  3. InputStream is;
  4. try {
  5. is = new FileInputStream("C:/Users/CJQ/Desktop/页面模版.xls");
  6. jxl.Workbook rwb = Workbook.getWorkbook(is);
  7. Sheet rsModule=rwb.getSheet(1);
  8. int [] orders= new int[rsModule.getRows()-1];
  9. for(int rsModuleIndex=1;rsModuleIndex<rsModule.getRows();rsModuleIndex++){
  10. Cell[] cellModule = rsModule.getRow(rsModuleIndex);
  11. orders[rsModuleIndex-1]=Integer.parseInt(cellModule[3].getContents());
  12. }
  13. for(int i=0;i<orders.length;i++){
  14. System.out.println(orders[i]);
  15. }
  16. } catch (FileNotFoundException e) {
  17. // TODO Auto-generated catch block
  18. e.printStackTrace();
  19. }   catch (BiffException e) {
  20. // TODO Auto-generated catch block
  21. e.printStackTrace();
  22. } catch (IOException e) {
  23. // TODO Auto-generated catch block
  24. e.printStackTrace();
  25. }
  26. }
  27. }

public class aaa { public static void main(String [] args){ InputStream is; try { is = new FileInputStream("C:/Users/CJQ/Desktop/页面模版.xls"); jxl.Workbook rwb = Workbook.getWorkbook(is); Sheet rsModule=rwb.getSheet(1); int [] orders= new int[rsModule.getRows()-1]; for(int rsModuleIndex=1;rsModuleIndex<rsModule.getRows();rsModuleIndex++){ Cell[] cellModule = rsModule.getRow(rsModuleIndex); orders[rsModuleIndex-1]=Integer.parseInt(cellModule[3].getContents()); } for(int i=0;i<orders.length;i++){ System.out.println(orders[i]); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (BiffException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

Demo--excel表单:

Demo--运行结果截图:

通过这篇博客的讲解,我感觉java读取excel表的问题迎刃而解了,这个问题解决了,那个批量导入的功能也就解决了一部分小问题,等待其他小问题解决了之后,整个的批量导入的功能也就迎刃而解了。大道至简,运用到实践中。

转载于:https://www.cnblogs.com/javaTest/archive/2012/06/14/2589571.html

从java读取Excel继续说大道至简 .相关推荐

  1. Flex通过Java读取Excel(详细流程)----Excel在客户端(DataGrid动态根据Excel生成)

    2011-03-06 23:57:00|  分类: flex/flash |  标签:excel  flex  java  客户端  as3xls   |字号大中小  订阅 在网上查了很久的资料,就是 ...

  2. JAVA读取Excel表格,建数据库建表,并生成java实体实例

    转自:https://blog.csdn.net/wuyongde_0922/article/details/43233413 JAVA读取Excel表格,建数据库建表,并生成java实体实例,这一篇 ...

  3. java读取excel表格数据

    1 背景介绍 java读取excel文件有很多的应用场景,如读取数据后入库,或者做数据分析,预处理等等,那么如何做到读取文件呢,下面看具体步骤. 笔者使用环境是IDEA2020.1,jdk8. 2 导 ...

  4. Java读取Excel,03版本和07版本

    文章目录 java读取Excel 读取Excel的计算公式 java读取Excel 采用poi,这里有个知识点,03版本和07版本的Excel是有区别的,03的最多只有65536行,07的无限制 读取 ...

  5. java读取Excel内容添加到list集合里面去

    java读取Excel内容添加到list集合里面去 package com.changan.contract.newsign.utils;import com.changan.contract.xqh ...

  6. java 读取excel模板_java如何读取excel表格的信息,java读取excel模板

    java如何读取excel表格的信息Java如何读取excel表格的信息,用java读取excel表格信息的方法:1.pass [workbook.getworkbook(新文件(' e ://exc ...

  7. Java读取Excel数据:基于Apache POI(一)

    Java读取Excel数据:基于Apache POI(一) Java本身不支持直接读取微软的Excel表格数据.第三方的Apache提供了一个库POI用以支持Java读写Excel表格数据. 首先需要 ...

  8. JAVA读取Excel数据

    JAVA读取Excel数据 下载 jxl.jar 导入jxl.jar 读取程序 写入Excel 写入txt 下载 jxl.jar 找到一个博主发的,下载好后去掉.zip后缀 jxl.jar下载 - 天 ...

  9. Java读取excel指定行列的数据(通过jxl的方式)

    目录 Java读取Excel指定列的数据详细教程和注意事项(通过jxl的方式) 1.前言 2.注意事项 3.主要的API说明 4.示例代码 Java读取Excel指定列的数据详细教程和注意事项(通过j ...

最新文章

  1. 解决https协议服务器内部无法跳转的问题
  2. 与阿里云容器服务 ACK 发行版的深度对话第一弹:如何借助 sealer 实现快速构建 部署
  3. 又一次回到追寻梦想的地方
  4. 计算机表格复制粘贴后不变,excel表格复制粘贴后格式不变
  5. python中gmtime的hour错误_python中gmtime的hour错误_在Python中操作日期和时间之gmtime()方法的使用...
  6. TableView Within Alert
  7. LoadRunner学习笔记
  8. g ++在linux下编译rapidxml 使用与过程中出现的问题解决
  9. 怎么设置计算机网络打印机共享,如何设置网络打印机,详细教您怎么设置共享打印机...
  10. 记录极致cms百度编辑器修改上传图片大小限制
  11. CONV SAME CONV VAILD CONV
  12. 香港特首到访阿里_她是来看几个年轻人的……
  13. JS遍历(循环)——JS对象遍历(循环)JS数组遍历(循环)
  14. 【Multisim仿真】74LS194组成的8个led流水灯
  15. 挑选西瓜(决策树实现)
  16. AI人工智能毕业设计课题:怀旧照片网站,黑白图像图片上色系统
  17. 基于 Kintex UltraScale 系列 FPGA 的高性能 PXIE 数据预处理载板(KU060 +FMC子卡接口)
  18. BlackBerry 9850 大屏幕黑莓手机
  19. java 自然常数e中出现的连续的第一个10个数字组成的质数,一道google面试题--自然数e中出现的连续的第一个10个数字组成的质数...
  20. openBrowser

热门文章

  1. 的run代码_小心使用 Task.Run 续篇
  2. nsq Android客户端,NSQ的golang客户端简单使用
  3. android 高德获取省市,高德地图定位获取当前地址城市街道等详细信息(全部代码)...
  4. hp服务器装xp系统,教你惠普笔记本一键装xp系统的方法
  5. Java 获取 URL 响应头信息
  6. Ajax链接输出数据库
  7. sublimetext3插件安装_sublime text 3 交互python
  8. MATLAB教程(1) MATLAB 基础知识(4)
  9. java线程池执行器_Java线程池ThreadPoolExecutor的使用
  10. 【OpenCV 例程200篇】23. 图像添加中文文字