从Excel文件读取数据表

Java Excel API 既可以从本地文件系统的一个文件(.xls),也可以从输入流中读取Excel数据表。读取Excel数据表的第一步是创建Workbook(术 语:工作薄),下面的代码片段举例说明了应该如何操作:(完整代码见ExcelReading.java)

import java.io.*;

import jxl.*;

… … … …

try

{

//构建Workbook对象, 只读Workbook对象

//直接从本地文件创建Workbook

//从输入流创建Workbook

InputStream is = new FileInputStream(sourcefile);

jxl.Workbook rwb = Workbook.getWorkbook(is);

}

catch (Exception e)

{

e.printStackTrace();

}

一旦创建了Workbook,我们就可以通过它来访问Excel Sheet(术语:工作表)。参考下面的代码片段:

//获取第一张Sheet表

Sheet rs = rwb.getSheet(0);

我们既可能通过Sheet的名称来访问它,也可以通过下标来访问它。如果通过下标来访问的话,要注意的一点是下标从0开始,就像数组一样。

一旦得到了Sheet,我们就可以通过它来访问Excel Cell(术语:单元格)。参考下面的代码片段:

//获取第一行,第一列的值

Cell c00 = rs.getCell(0, 0);

String strc00 = c00.getContents();

//获取第一行,第二列的值

Cell c10 = rs.getCell(1, 0);

String strc10 = c10.getContents();

//获取第二行,第二列的值

Cell c11 = rs.getCell(1, 1);

String strc11 = c11.getContents();

System.out.println("Cell(0, 0)" + " value : " + strc00 + "; type : " + c00.getType());

System.out.println("Cell(1, 0)" + " value : " + strc10 + "; type : " + c10.getType());

System.out.println("Cell(1, 1)" + " value : " + strc11 + "; type : " + c11.getType());

如果仅仅是取得Cell的值,我们可以方便地通过getContents()方法,它可以将任何类型的Cell值都作为一个字符串返回。示例代码中 Cell(0, 0)是文本型,Cell(1, 0)是数字型,Cell(1,1)是日期型,通过getContents(),三种类型的返回值都是字符型。

如果有需要知道Cell内容的确切类型,API也提供了一系列的方法。参考下面的代码片段:

String strc00 = null;

double strc10 = 0.00;

Date strc11 = null;

Cell c00 = rs.getCell(0, 0);

Cell c10 = rs.getCell(1, 0);

Cell c11 = rs.getCell(1, 1);

if(c00.getType() == CellType.LABEL)

{

LabelCell labelc00 = (LabelCell)c00;

strc00 = labelc00.getString();

}

if(c10.getType() == CellType.NUMBER)

{

NmberCell numc10 = (NumberCell)c10;

strc10 = numc10.getValue();

}

if(c11.getType() == CellType.DATE)

{

DateCell datec11 = (DateCell)c11;

strc11 = datec11.getDate();

}

System.out.println("Cell(0, 0)" + " value : " + strc00 + "; type : " + c00.getType());

System.out.println("Cell(1, 0)" + " value : " + strc10 + "; type : " + c10.getType());

System.out.println("Cell(1, 1)" + " value : " + strc11 + "; type : " + c11.getType());

在得到Cell对象后,通过getType()方法可以获得该单元格的类型,然后与API提供的基本类型相匹配,强制转换成相应的类型,最后调用相应的取 值方法getXXX(),就可以得到确定类型的值。API提供了以下基本类型,与Excel的数据格式相对应:

每种类型的具体意义,请参见Java Excel API Document。

如果你喜欢这类文章,可以订阅我,有空我继续发-----vsalw

java 下标的使用_使用 Java Excel 操作excel-excel下标相关推荐

  1. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  2. java是什么格式_是java格式

    错误:编码GBK的不可映射字符的解决办法 最近在重新补javaSE的基础,编辑器编写完代码以后,在控制台运行代码段的时候,出现了以下的错误提示:错误:编码GBK的不可映射字符 在通过查询谷哥和度娘以后 ...

  3. java ee开发环境_设置Java EE 6开发环境

    java ee开发环境 本教程简要说明了如何设置典型的环境来开发基于Java EE 6的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. ...

  4. java语言 编译原理_【Java学习】深入分析Java的编译原理

    在<Java代码的编译与反编译>中,有过关于Java语言的编译和反编译的介绍.我们可以通过javac命令将Java程序的源代码编译成Java字节码,即我们常说的class文件.这是我们通常 ...

  5. java程序设计模拟题_《Java程序设计》东师模拟题题目及答案

    <Java程序设计>东师模拟题题目及答案 2020-08-30 09:08:37 931 有学员问关于<Java程序设计>东师模拟题题目及答案的题目的参考答案和解析,具体如下: ...

  6. JAVA redis缓存过期_失效java服务器

    Java 并发/多线程教程--4并发模型 本系列译自jakob jenkov的Java并发多线程教程(本章节部分内容参考http://ifeve.com/并发编程模型),个人觉得很有收获.由于个人水平 ...

  7. java多线程交替打印_使用Java实现三个线程交替打印0-74

    使用Java实现三个线程交替打印0-74 题目分析 三个线程交替打印,即3个线程是按顺序执行的.一个线程执行完之后,唤醒下一个线程,然后阻塞,等待被该线程的上一个线程唤醒.执行的顺序是一个环装的队列 ...

  8. java中 jacob作用_【JAVA】JACOB使用简介

    它允许在java中调用com接口自动组件,它使用JNI(本地调用程序)来进行本地调用COM库.它可运行在x86和支持32位和64位Java虚拟机 X64的环境. 测试源码包: 密码: ej9u JAC ...

  9. java 爬虫 请求头_得到java头

    Linux下JNI调用简单实例操作全过程 开发环境:Linux(Ubuntu 11.04) + JDK 7 实例说明:利用JNI调用本地代码的方法来实现一个计算Int数组总和的功能 使用JNI调用本地 ...

最新文章

  1. python解释器是什么-python编译器和解释器的区别是什么
  2. JZOJ 3814. 【NOIP2014模拟9.7】天黑黑
  3. 大数据下union all的视图分页解决方案
  4. java swing双缓冲_java中的双缓冲技术
  5. 如何查看文件是否为csv格式_Spark实战第二版(涵盖Spark3.0)第七章 从文件接入数据...
  6. iphone屏幕突然变暗_iPhone 屏幕突然变暗是什么原因?
  7. 取名五行字典(金木水火土)
  8. python精通要数学好_深度学习需要多强的数学基础?
  9. 上海图书馆及分馆特色
  10. 社区购物、社区买菜小程序源码
  11. 【叶子函数分享五十四】汉字转拼音函数
  12. 国外计算机著名核心期刊介绍(转)
  13. 史上最全大数据学习资源整理
  14. arduino与hcsr04_Arduino 驱动 HC-SR04 超声波测距模块
  15. PHP移动互联网开发笔记(1)——环境搭建及配置
  16. 国美金融是“持牌大户”还是“违规大户”:国美易卡贷超出现套路贷APP,暴力催收恐吓借款人
  17. 4110:圣诞老人的礼物-Santa Clau’s Gifts(java)
  18. 《Hyperledger Fabric官方文档》区块链的网络
  19. 建设智慧城市的十大反思
  20. 如何搭建监狱OTT点播/IPTV直播电视系统?

热门文章

  1. 智能工厂信息管理系统软件-工厂信息化管理系统
  2. wu-easy-excel-starter 数据快速导入导出
  3. 五一出行哪种蓝牙耳机最好用?蓝牙耳机良心推荐
  4. 微信支付分计算机,微信支付分付怎么开通?微信分付可用额度从这里看
  5. UI --- Xcode7 模拟器运行时崩溃解决方法
  6. 《一种面向主题的 Flickr 组内照片浏览方法》阅读笔记
  7. 如何查阅Gox语言的文档-GX4.1
  8. 2019年抖音数据报告趣味解读(附PDF完整版下载)
  9. 金融平台(掘金量化)量化PYTHON(一)-量化交易介绍
  10. 信号的调制与解调MATLAB(AM/PM/FM)