Java使用POI读取Excel教程
4星 · 超过85%的资源 需积分: 9 146 浏览量
更新于2024-09-13
收藏 2KB TXT 举报
"Java 解析Excel相关技术及代码示例"
在Java开发中,处理Excel文件是一项常见的任务,主要用于数据导入导出。本资源主要关注使用Apache POI库来解析和操作Excel文件。Apache POI是一个流行的开源项目,它允许Java开发者读取、写入以及修改Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。
Apache POI提供了两种主要的API用于处理Excel:HSSF(Horrible Spreadsheet Format)用于处理老版本的BIFF8格式(.xls),而XSSF则用于处理OOXML格式(.xlsx)。在给定的描述中,提到了 poi-3.7-20101029 版本,这表明我们将使用XSSF来处理.xlsx文件,因为这个版本支持OOXML标准。
要使用Apache POI,首先需要在项目中引入以下依赖库:
1. poi-3.7-20101029.jar
2. poi-examples-3.7-20101029.jar
3. poi-ooxml-3.7-20101029.jar
4. poi-ooxml-schemas-3.7-20101029.jar
5. poi-scratchpad-3.7-20101029.jar
6. xmlbeans-2.3.0.jar
7. jsr173_1.0_api.jar
8. dom4j-1.6.1.jar
9. geronimo-stax-api_1.0_spec-1.0.jar
以下是一个简单的Java代码示例,展示了如何使用POI读取.xlsx文件:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class AllCityExcel {
private static final Logger logger = Logger.getLogger(AllCityExcel.class);
private static final DbAllCityImpl dbAllCity = new DbAllCity();
public List<List<String>> readExcel(String fileName, String path) {
List<List<String>> rows = new ArrayList<>();
try {
FileInputStream fis = new FileInputStream(new File(path + "/" + fileName));
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(fis);
for (int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) {
XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(numSheet);
if (xssfSheet == null) {
continue;
}
// 遍历行
for (int rowNum = 1; rowNum <= xssfSheet.getLastRowNum(); rowNum++) {
XSSFRow xssfRow = xssfSheet.getRow(rowNum);
if (xssfRow == null) {
continue;
}
// 遍历单元格
List<String> cells = new ArrayList<>();
for (int cellNum = 0; cellNum < xssfRow.getLastCellNum(); cellNum++) {
XSSFCell xssfCell = xssfRow.getCell(cellNum);
if (xssfCell != null) {
cells.add(xssfCell.getStringCellValue());
} else {
cells.add(null);
}
}
rows.add(cells);
}
}
xssfWorkbook.close();
fis.close();
} catch (IOException e) {
logger.error("读取Excel文件出错", e);
}
return rows;
}
}
```
在这个示例中,`readExcel`方法接收文件名和路径作为参数,然后创建一个`FileInputStream`来打开Excel文件。接着,通过`XSSFWorkbook`实例化来读取工作簿,并遍历每个工作表(sheet)。对于每个非空的工作表,我们逐行遍历并获取单元格的值,将值存储到一个`List<String>`对象中,最后将所有行数据添加到`rows`列表返回。
这个例子中的`DbAllCityImpl`类可能是一个数据库操作的实现,表示读取到的数据可能会被进一步处理并存储到数据库中。然而,这部分的具体实现并没有给出。
Apache POI提供了一套强大的工具,使得Java开发者能够方便地处理Excel文件。在实际项目中,可以扩展这些基础示例来实现更复杂的逻辑,如数据验证、格式转换、公式计算等。
2018-03-25 上传
2839 浏览量
2012-10-31 上传
2019-05-28 上传
2008-02-19 上传
2011-06-15 上传
w3_kaka
- 粉丝: 1
- 资源: 2
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程