如何使用Apache POI获取Excel文件Cell数据

如何使用Apache POI获取Excel文件Cell数据

1. 概述

Microsoft Excel的单元格可以有不同的类型,如字符串、数值、布尔值和公式

在本文中,我们将展示如何使用Apache POI读取作为字符串的单元格值——无论单元格类型是什么

2. Apache POI 依赖项

首先,我们需要添加poi依赖到我们的项目pom.xml文件:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.1</version>
</dependency>

Apache POI使用Workbook接口来表示Excel文件。还使Sheet, Row, Cell 接口来表示Excel文件中不同类别的元素。在Cell类别我们可以使用它的getCellType()方法来获取单元格类型。Apache POI支持以下单元格类型:

  • BLANK
  • BOOLEAN
  • ERROR
  • FORMULA
  • NUMERIC
  • STRING

在屏幕上显示Excel文件内容,通常是已单元格的字符串表示,而不是它的原始值。因此,对于非STRING类型的单元格,我们需要将其数据转换为字符串值

3. 获取Cell的字符串值

我们可以使用

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache POI 是一个用于读写 Microsoft Office 格式文件(如 Excel、Word、PowerPoint 等)的 Java 库。下面是使用 Apache POI 读取 Excel 表格数据的步骤: 1. 添加 Apache POI 依赖包。 在项目的 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency> ``` 2. 创建 Workbook 对象。 使用 FileInputStream 类加载 Excel 文件,然后创建 Workbook 对象。Workbook 对象可以是 HSSFWorkbook(处理 .xls 格式)或 XSSFWorkbook(处理 .xlsx 格式)。 ```java FileInputStream file = new FileInputStream(new File("path/to/excel/file.xlsx")); XSSFWorkbook workbook = new XSSFWorkbook(file); ``` 3. 获取 Sheet 对象。 Sheet 对象代表一个 Excel 表格,可以通过 Workbook 对象的 getSheet() 方法获取。也可以通过 Sheet 对象的名字获取,如 getSheet("Sheet1")。 ```java Sheet sheet = workbook.getSheetAt(0); // 获取第一个表格 ``` 4. 遍历行和单元格。 遍历行和单元格,读取数据。 ```java Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); Iterator<Cell> cellIterator = row.iterator(); while (cellIterator.hasNext()) { Cell cell = cellIterator.next(); switch (cell.getCellType()) { case STRING: System.out.print(cell.getStringCellValue() + "\t"); break; case NUMERIC: System.out.print(cell.getNumericCellValue() + "\t"); break; case BOOLEAN: System.out.print(cell.getBooleanCellValue() + "\t"); break; default: } } System.out.println(); } ``` 完整代码示例: ```java import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Iterator; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ReadExcel { public static void main(String[] args) throws IOException { FileInputStream file = new FileInputStream(new File("path/to/excel/file.xlsx")); XSSFWorkbook workbook = new XSSFWorkbook(file); Sheet sheet = workbook.getSheetAt(0); Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); Iterator<Cell> cellIterator = row.iterator(); while (cellIterator.hasNext()) { Cell cell = cellIterator.next(); switch (cell.getCellType()) { case STRING: System.out.print(cell.getStringCellValue() + "\t"); break; case NUMERIC: System.out.print(cell.getNumericCellValue() + "\t"); break; case BOOLEAN: System.out.print(cell.getBooleanCellValue() + "\t"); break; default: } } System.out.println(); } workbook.close(); file.close(); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值