一、问题背景
今天使用jxl.jar包解析excle时,发现一个错误。运行以下程序时会提示如下错误:jxl.read.biff.BiffException: Unable to recognize OLE stream
at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:99)
at jxl.read.biff.File.<init>(File.java:113)
at jxl.Workbook.getWorkbook(Workbook.java:243)
at jxl.Workbook.getWorkbook(Workbook.java:228)
at com.ssm.test.LAAgentTest.testReadExcel2003
代码如下:
@Test
public void testReadExcel2003() {
try {
String path = "e:/class.xlsx";
InputStream ins = new FileInputStream(path);
jxl.Workbook tWorkbook = jxl.Workbook.getWorkbook(ins);
jxl.Sheet sheet = tWorkbook.getSheet(0);
System.out.println("第一个工作簿的名称是:"+sheet.getName());
int rows = sheet.getRows();
for(int i=0; i<rows; i++) {
if(i<2) {
continue;
}
jxl.Cell[] cells = sheet.getRow(i);
for(int j=0; j<cells.length; j++) {
System.out.println(cells[j].getContents());
}
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
二、解决办法
后来发现是因为jxl不支持2007版excle的解析。因此,打开class.xlsx文件后,选择另存为,保存类型选择2003版本。将代码中的class.xlsx改为另存为excle的名称,运行程序没有问题。
三、使用apache的poi.jar解析excle,兼容2003和2007
废话不说,直接上代码:
@Test
public void testReadExcel2007() {
try {
String path = "e:/class.xlsx";
InputStream ins = new FileInputStream(path);
Workbook wb = WorkbookFactory.create(ins);
Sheet sheet = wb.getSheetAt(0);
int columnNum = sheet.getRow(0).getLastCellNum() - sheet.getRow(0).getFirstCellNum();
for (int j = 0; j < sheet.getLastRowNum(); j++) {
Row row = sheet.getRow(j);
for (int i = 0; i < columnNum; i++) {
Cell cell = row.getCell(i, Row.CREATE_NULL_AS_BLANK);
System.out.println(cell);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
分享到:
相关推荐
在Java编程环境中,解析Excel文件是一项常见的任务,特别是在数据处理、数据分析或自动化测试等领域。Eclipse作为Java开发的主流IDE,提供了丰富的工具和支持来完成这项工作。本项目名为"java 解析Excel 并判断解析...
1. **Java解析Excel库** 在Java中,有多个库可以用来解析Excel文件,如Apache POI、JExcelAPI、SimpleExcel等。Apache POI是目前最广泛使用的库,支持`.xls`和`.xlsx`格式,功能强大且稳定。我们将主要讨论使用...
Java解析Excel表格是一种常见的任务,尤其在数据处理和分析领域。Java提供了多种库来支持Excel文件的读取和写入,比如Apache POI、JExcelAPI、OpenCSV等。这里我们将重点讨论Apache POI,这是一个广泛使用的开源库,...
java解析Excel
1、java解析读取excel文件中的数据,并写入数据库。 2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection....
Java解析Excel文件主要依赖于Apache POI库,这是一个开源项目,专门为处理Microsoft Office格式的文件而设计。在Java中,Apache POI提供了丰富的API,使得开发者可以方便地读取、写入Excel(.xls和.xlsx)文件。在这...
Java解析Excel是一项常见的任务,特别是在数据处理和报告生成的场景中。`poi.jar`库是Apache POI项目的一部分,这是一个开源的Java API,专门用于处理Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。在Java...
回答csdn论坛:Java语言下excel导入到mysql数据库表...
JAVA解析Excel工具EasyExcel Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存&#xff0c;poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题&#xff0c;但...
Java解析Excel 2007源码主要涉及的是对Microsoft Office Open XML (OOXML) 格式的处理,这种格式主要用于xlsx文件。OOXML是Excel 2007及更高版本默认使用的存储格式,它以XML为基础,将数据以更结构化的方式存储在多...
Java解析Excel源码主要涉及到的是使用Java处理Microsoft Excel文件的技术,这一技术在数据处理、数据分析以及报表生成等场景中非常常见。在这个过程中,我们通常会使用Apache POI库,这是一个强大的开源API,专为...
Java使用poi的jar包解析excel,里面有个ExcelUtil工具类, 非常实用,里面有main函数可以测试,导入到eclipse里面就可以运行, 有测试excel文件,需要的jar都在里面, 导入就可以运行.
Java解析Excel文件是Java开发中常见的任务,尤其在数据处理、报表生成或数据分析等领域。Excel文件通常使用两种主要格式:老式的`.xls`(BIFF8格式)和较新的`.xlsx`(OOXML格式)。本示例关注的是`.xls`格式,因为...
总的来说,Java解析Excel文件的核心在于理解Apache POI库提供的各种类和方法,以及如何利用它们来处理Excel文件中的数据。通过这个实例,你可以开始构建自己的Excel处理功能,无论是简单的数据读取还是复杂的业务...
在Java编程环境中,解析Excel文件是一项常见的任务,特别是在数据处理和数据分析领域。针对Excel 2003和2007格式,Java提供了多种库来实现这一功能,其中Apache POI是一个广泛使用的开源库。标题提到的"java 解析...
本篇文章将深入讲解如何使用Java解析Excel(包括Excel 2003和2007格式)和CSV文件,并将解析的数据映射到Java Bean,以便后续的数据处理和存储。 首先,我们需要了解如何在Java中处理文件上传。在Servlet环境中,...
【标题】:POI Java解析EXCEL 在Java开发中,处理Excel文件是常见的需求,Apache POI项目提供了一个强大的工具库,使得开发者能够轻松地读取、写入以及操作Microsoft Office格式的文件,尤其是Excel(.xlsx和.xls)...