使用Apache POI读写Excel的Java实例

需积分: 10 6 下载量 160 浏览量 更新于2024-09-18 收藏 28KB DOC 举报
"poi实例" Apache POI 是一个用于读写Microsoft Office格式文件的开源库,主要专注于处理Excel(.xls 和 .xlsx)文档。在Java中,POI库提供了广泛的API,使得开发者能够轻松地创建、修改和读取Excel文件。本实例将介绍如何使用Apache POI读取和写入Excel数据。 首先,我们导入了所需的包,包括`java.io`,`java.util`,以及Apache POI的特定类,如`HSSFWorkbook`,`HSSFSheet`,`HSSFRow`和`HSSFCell`。这些类分别代表Excel的工作簿、工作表、行和单元格。 在类`ExcelLoadAndPut`中,定义了一个常量`ss = "Sheet1"`,表示默认要读取的Excel工作表名称。接下来,我们定义了一个方法`LoadExcel`,该方法接收两个参数:一个是Excel文件的路径,另一个是工作表的名字,默认为"Sheet1"。 在`LoadExcel`方法内部,我们创建了一个`List<Object[]> list`,用于存储读取到的Excel数据。每一行数据被表示为一个`Object[]`数组。接着,我们使用`FileInputStream`打开文件,并通过它创建`HSSFWorkbook`实例,这是处理Excel工作簿的核心对象。 尝试捕获可能出现的`FileNotFoundException`,确保文件能正常打开。然后,我们创建`HSSFSheet`对象来代表工作表,并从工作簿中获取指定名称的表单。如果未提供工作表名,则默认使用"Sheet1"。 为了读取Excel表格中的数据,我们需要遍历工作表中的每一行和单元格。这个实例没有展示具体的读取过程,但通常会涉及以下步骤: 1. 遍历行:使用`HSSFSheet#iterator()`或`HSSFSheet#iterator()`获取行迭代器,然后对每一行执行操作。 2. 获取单元格:对每一行`HSSFRow`,使用`HSSFRow#getCell(int columnNum)`获取指定列号的单元格。 3. 处理单元格数据:根据单元格类型(数字、字符串、日期等)进行适当的数据转换。 4. 存储数据:将处理后的单元格数据添加到`Object[]`数组,然后将数组添加到`list`。 写入Excel数据的过程与此类似,只是方向相反。你需要创建新的`HSSFRow`,设置单元格值,然后将它们添加到工作表中。最后,记得使用`FileOutputStream`将工作簿写入文件,并关闭所有打开的流,以避免资源泄漏。 这个简单的实例展示了Apache POI的基本用法,但实际应用可能需要更复杂的逻辑,比如处理不同类型的单元格,错误处理,以及优化性能。此外,对于现代的`.xlsx`格式,你可能需要使用`XSSFWorkbook`和相关的类,因为`HSSF`主要用于旧版的`.xls`格式。