《手把手教你》系列技巧篇(六十七)-java+ selenium自动化测试 - 读写excel文件 - 中篇(详细教程)


1.简介

  前面介绍了POI可以操作excel,也简单的提到另一个操作excle的工具,本篇介绍一个其他的可以操作excel的工具,但是这个工具有一个前提,excel文件版本只能是97-2003版本,如果是2007或者以上版本是操作不了的,所以,还是建议掌握POI操作excel文件。不管这个Jexcel只能操作2003版本的excel,我们先来看看如何读取一个2003版本excel内的数据。

2.常见读写Excel的工具类开源javaAPI

目前常见读写Excel的工具类开源javaAPI有两种方式:

一个是JXL(Java Excel API) 官网地址:http://jexcelapi.sourceforge.net/

一个是Apache的POI(Poor Obfuscation Implementation)官网地址:http://poi.apache.org/

POI支持微软的OLE2格式文件Office 2003及以下版本;同时支持微软的OOXML(Office Open XML)标准,也就是Office 2007以上版本。JXL只能实现对Excel 2003以下版本的支持。

POI使用HSSF对象操作OLE2格式Excel,文件后缀为.xls的;使用XSSF、SXSSF对象操作OOXML格式Excel,文件后缀为.xlsx的。

对于OLE2版本的Excel,一个Sheet工作表它的行最多支持到65536行,列支持到256列;

对于OOXML版本的Excel,一个Sheet工作表它的行支持到1048576行,列支持到16384列。

3.JXL(Java Excel API)

3.1下载JXL

1.打开网站http://www.java2s.com/Code/Jar/j/Downloadjxl2612jar.htm,选择下面2.6.12版本下载。如下图所示:

2.点击“jxl/jxl-2.6.12.jar.zip( 672 k)”,开始下载,如下图所示:

3.下载完后解压,文件结构如下图所示:

4.项目实战

4.1jar文件添加

1.把JXL文件添加在你Selenium当前项目的library中,具体添加方法,宏哥在这里就不赘述了,不清楚的可以看一下上一篇文章是怎么添加的。

4.2准备Excle文件

1.运行代码,右键Run AS->Java Appliance,控制台输出,如下图所示:

5.小结

1.读入Excel报jxl.read.biff.BiffException: Unable to recognize OLE stream,如下图所示:

解决办法:

说明导入的excel不是jxl认定的标准的OLE file,可是打开的看起来是Excle,然后我把这个Excel重新另存为一个Excel,发现他默认的保存类型是“单个文件网页”(通过EditPlus打开Excle可以看到是网页文件),然后把他保类型修改为Microsoft Office Excel,保存导入,就可以正确导入了。

另外一个可能的原因是:excel的版本问题,另存为的时候,我们要选择2003,如下图所示:

相关