目前有两种比较主流的技术解析Excel文件,这里我讲解的是Poi技术的实现。
话不多话,Poi包里有4个主要的类,包括:
Workbook------工作表,通过WorkbookFactory的create(FileInputStream fis)方法获取,
Sheet------------表格,Workbook实例的getSheetAt(int num)方法获取,
Row--------------行,Sheet实例的getRow(int num)方法获取,
Cell--------------单元格,Row实例的getCell(int num)方法获取,
最后通过Cell实例根据数据类型调用对应的方法获取单元格的值。
下面是我做的一个实例。
excel文件内容:包含字符串、日期、数值、公式等数值类型
解析类代码:
public class Poi { private Sheet sheet; //表格类实例 LinkedList[] result; //保存每个单元格的数据 ,使用的是一种链表数组的结构 //读取excel文件,创建表格实例 private void loadExcel(String filePath) { FileInputStream inStream = null; try { inStream = new FileInputStream(new File(filePath)); Workbook workBook = WorkbookFactory.create(inStream); sheet = workBook.getSheetAt(0); } catch (Exception e) { e.printStackTrace(); }finally{ try { if(inStream!=null){ inStream.close(); } } catch (IOException e) { e.printStackTrace(); } } } //获取单元格的值 private String getCellValue(Cell cell) { String cellValue = ""; DataFormatter formatter = new DataFormatter(); if (cell != null) { //判断单元格数据的类型,不同类型调用不同的方法 switch (cell.getCellType()) { //数值类型 case Cell.CELL_TYPE_NUMERIC: //进一步判断 ,单元格格式是日期格式 if (DateUtil.isCellDateFormatted(cell)) { cellValue = formatter.formatCellValue(cell); } else { //数值 double value = cell.getNumericCellValue(); int intValue = (int) value; cellValue = value - intValue == 0 ? String.valueOf(intValue) : String.valueOf(value); } break; case Cell.CELL_TYPE_STRING: cellValue = cell.getStringCellValue(); break; case Cell.CELL_TYPE_BOOLEAN: cellValue = String.valueOf(cell.getBooleanCellValue()); break; //判断单元格是公式格式,需要做一种特殊处理来得到相应的值 case Cell.CELL_TYPE_FORMULA:{ try{ cellValue = String.valueOf(cell.getNumericCellValue()); }catch(IllegalStateException e){ cellValue = String.valueOf(cell.getRichStringCellValue()); } } break; case Cell.CELL_TYPE_BLANK: cellValue = ""; break; case Cell.CELL_TYPE_ERROR: cellValue = ""; break; default: cellValue = cell.toString().trim(); break; } } return cellValue.trim(); } //初始化表格中的每一行,并得到每一个单元格的值 public void init(){ int rowNum = sheet.getLastRowNum() + 1; result = new LinkedList[rowNum]; for(int i=0;i<rowNum;i++){ Row row = sheet.getRow(i); //每有新的一行,创建一个新的LinkedList对象 result[i] = new LinkedList(); for(int j=0;j<row.getLastCellNum();j++){ Cell cell = row.getCell(j); //获取单元格的值 String str = getCellValue(cell); //将得到的值放入链表中 result[i].add(str); } } } //控制台打印保存的表格数据 public void show(){ for(int i=0;i<result.length;i++){ for(int j=0;j<result[i].size();j++){ System.out.print(result[i].get(j) + "\t"); } System.out.println(); } } public static void main(String[] args) { Poi poi = new Poi(); poi.loadExcel("jxl.xls"); poi.init(); poi.show(); } }
控制台输出结果:
备注:上述的代码只能解析xls格式 的文件,对于xlsx格式则需要另外几个类解析,XSSFWorkbook、XSSFSheet、XSSFRow、XSSFCell,其实方法和思路是一样,相应的改改类名而已,不是很复杂。
相关推荐
标题中的"poi-ooxml-schemas-3.8,poi-3.8,poi-ooxml jar包合集"指的是Apache POI项目中用于处理Microsoft Office格式文件的Java库,特别是针对Excel(XLS和XLSX)文档的处理。Apache POI是一个流行的开源库,允许...
总结,Apache POI 3.8提供了一个强大的工具集,允许开发者在Java环境中方便地读取和解析Excel文件,无论是老版的.xls还是新版的.xlsx。通过理解其核心组件和API,你可以有效地操作Excel数据,进行数据分析、数据导入...
在这个"poi 解析excel文件内容demo"中,我们主要关注如何使用Apache POI库来读取和解析Excel文件,无论它们是2003版的.XLS还是2007以后的.XLSX格式。 首先,Apache POI提供了两种主要的接口来处理Excel文件:HSSF...
Poi库支持这两种格式,并提供了丰富的API来读取、写入和修改Excel数据。 **解析Excel数据的基本步骤如下:** 1. **添加依赖**:首先,在你的项目中引入Poi库。如果你使用Maven,可以在pom.xml文件中添加以下依赖:...
这通常意味着将poi-*.jar、poi-ooxml-*.jar和poi-ooxml-schemas-*.jar文件放入JMeter的lib目录下。 2. 在BeanShell Sampler中编写Java代码,创建Workbook对象,然后打开指定的Excel文件。例如: ```java import org....
【描述】:POI Java解析EXCEL框架是Apache软件基金会的一个开源项目,主要提供了API来处理Microsoft Office的文件格式。这里的“jar”指的是POI的Java库文件,它包含了处理Excel所需的所有类和方法,可以集成到Java...
Apache POI支持这两种格式,允许开发者读取和写入这两种类型的Excel文件。对于BIFF格式,POI使用HSSF(Horrible Spreadsheet Format)接口;而对于XML格式,则使用XSSF(eXtremely SpreadSheet Format)接口。 三、...
总结来说,"java解析excel表格"的实例是基于Apache POI库实现的,它展示了如何在Java环境中读取、处理和输出Excel文件的内容。这对于需要处理Excel数据的Java开发者来说是一个基础且实用的教程。通过深入学习和实践...
Java解析Excel文件是Java开发中常见的任务,尤其在数据处理、报表生成或数据分析等领域。Excel文件通常使用两种主要格式:老式的`.xls`(BIFF8格式)和较新的`.xlsx`(OOXML格式)。本示例关注的是`.xls`格式,因为...
在本例中,我们关注的是与处理PowerPoint文件相关的部分,即"poi-scratchpad-3.12-20150511"和"poi-3.12-20150511"这两个jar包。 Apache POI项目主要分为几个组件,包括: 1. **POI-OOXML**: 这个组件处理基于Open...
解析Excel文件主要有两种类型:老版的.BIFF8格式(.xls)和较新的.OpenXML格式(.xlsx)。Apache POI提供了HSSF(Horrible Spreadsheet Format)和XSSF(eXtended Spreadsheet Format)两个API来处理这两种格式。 1...
1. **Java解析Excel库** 在Java中,有多个库可以用来解析Excel文件,如Apache POI、JExcelAPI、SimpleExcel等。Apache POI是目前最广泛使用的库,支持`.xls`和`.xlsx`格式,功能强大且稳定。我们将主要讨论使用...
总的来说,Java解析Excel文件涉及的关键点包括选择合适的API(HSSF或XSSF)、理解文件格式以及利用库提供的功能进行数据操作。在实际项目中,根据文件大小、性能需求和功能复杂性,选择最佳的处理策略至关重要。
在标题和描述中提到的“java解析excel所需要的jar包”,指的是Apache POI项目中的相关依赖,这些jar文件包含了处理Excel(xls、xlsx两种格式)所需的所有核心组件。下面将详细介绍这些jar文件的功能及其在解析Excel...
Java解析Excel源码主要涉及到的是使用Java处理Microsoft Excel文件的技术,这一技术在数据处理、数据分析以及报表生成等场景中非常常见。在这个过程中,我们通常会使用Apache POI库,这是一个强大的开源API,专为...
【Java解析Excel的POI框架】是Apache Jakarta项目的一个组件,专门用于处理OLE2对象,尤其是Microsoft Excel文件。它的核心接口HSSF(Horrible Spreadsheet Format)提供了读取、写入和修改Excel文件的能力,使...
Java编程语言提供了丰富的库来处理这两种格式,如DOM4j和Apache POI。本项目就是关于如何使用DOM4j解析XML文件,并利用Apache POI将其转换为标准的XLS(Excel)文件。 首先,DOM4j是Java中一个灵活且功能强大的XML...
【标题】"POI解析Excel文档"涉及到的主要技术是Apache POI库,它是一个用于读取和写入Microsoft Office格式档案的开源Java API。在Java编程环境中,使用POI库可以方便地处理Excel(.xlsx和.xls)文件,进行数据的...
在Apache POI中,xmlbeans被用来解析和生成OOXML格式的Excel文件,因为OOXML本质上是一种基于XML的文件格式。 4. **dom4j**: 这是一个强大的Java XML API,用于读写XML文档。在处理XML数据时,POI可能会用到dom4j来...