java如何读取excel中的内容

java如何读取excel中的内容

Java 读取 Excel 内容的方式包括:使用Apache POI库、使用JExcel API、使用EasyExcel库。 在实际开发中,Apache POI库是最常用的一个,它支持对Excel文件的读写操作,功能强大且稳定。接下来,我们将详细介绍如何通过Apache POI库来读取Excel文件中的内容,并探讨其他两种方法的基本使用和适用场景。


一、使用 Apache POI 库

Apache POI 是一个开源的 Java API,用于处理 Microsoft Office 文档,包括 Excel。它支持读取和写入 Excel 97-2003 (.xls) 和 Excel 2007+ (.xlsx) 文件。以下是具体的步骤和代码示例:

1. 添加 Apache POI 依赖

首先,需要在项目中添加 Apache POI 依赖。如果使用的是 Maven 项目,可以在 pom.xml 文件中添加以下内容:

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml</artifactId>

<version>5.2.3</version>

</dependency>

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>5.2.3</version>

</dependency>

2. 读取 Excel 文件

以下是一个简单的示例代码,展示如何使用 Apache POI 库读取 Excel 文件中的内容:

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;

public class ExcelReader {

public static void main(String[] args) {

String excelFilePath = "path/to/your/excel/file.xlsx";

FileInputStream fis = null;

Workbook workbook = null;

try {

fis = new FileInputStream(new File(excelFilePath));

workbook = new XSSFWorkbook(fis);

// 获取第一个工作表

Sheet sheet = workbook.getSheetAt(0);

// 遍历每一行

for (Row row : sheet) {

// 遍历每一列

for (Cell cell : row) {

switch (cell.getCellType()) {

case STRING:

System.out.print(cell.getStringCellValue() + "t");

break;

case NUMERIC:

if (DateUtil.isCellDateFormatted(cell)) {

System.out.print(cell.getDateCellValue() + "t");

} else {

System.out.print(cell.getNumericCellValue() + "t");

}

break;

case BOOLEAN:

System.out.print(cell.getBooleanCellValue() + "t");

break;

case FORMULA:

System.out.print(cell.getCellFormula() + "t");

break;

default:

System.out.print("Unsupported cell type" + "t");

break;

}

}

System.out.println();

}

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if (fis != null) fis.close();

if (workbook != null) workbook.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

3. 解析 Excel 数据

上面的代码展示了如何读取 Excel 文件中的内容,并根据不同的单元格类型(字符串、数字、布尔值、公式)进行不同的处理。可以根据具体需求进一步处理或解析这些数据。

二、使用 JExcel API

JExcel API 是另一个用于读取和写入 Excel 文件的 Java 库。它主要用于 Excel 97-2003 (.xls) 文件,不支持 Excel 2007+ (.xlsx) 文件。

1. 添加 JExcel API 依赖

在项目中添加 JExcel API 依赖。如果使用的是 Maven 项目,可以在 pom.xml 文件中添加以下内容:

<dependency>

<groupId>net.sourceforge.jexcelapi</groupId>

<artifactId>jxl</artifactId>

<version>2.6.12</version>

</dependency>

2. 读取 Excel 文件

以下是一个简单的示例代码,展示如何使用 JExcel API 读取 Excel 文件中的内容:

import jxl.Cell;

import jxl.Sheet;

import jxl.Workbook;

import java.io.File;

public class JExcelReader {

public static void main(String[] args) {

String excelFilePath = "path/to/your/excel/file.xls";

Workbook workbook = null;

try {

workbook = Workbook.getWorkbook(new File(excelFilePath));

Sheet sheet = workbook.getSheet(0);

for (int row = 0; row < sheet.getRows(); row++) {

for (int col = 0; col < sheet.getColumns(); col++) {

Cell cell = sheet.getCell(col, row);

System.out.print(cell.getContents() + "t");

}

System.out.println();

}

} catch (Exception e) {

e.printStackTrace();

} finally {

if (workbook != null) {

workbook.close();

}

}

}

}

三、使用 EasyExcel 库

EasyExcel 是阿里巴巴开源的一个用于读取和写入 Excel 文件的 Java 库,具有性能高、内存占用低的特点,适合处理大规模数据。

1. 添加 EasyExcel 依赖

在项目中添加 EasyExcel 依赖。如果使用的是 Maven 项目,可以在 pom.xml 文件中添加以下内容:

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>easyexcel</artifactId>

<version>3.0.5</version>

</dependency>

2. 读取 Excel 文件

以下是一个简单的示例代码,展示如何使用 EasyExcel 读取 Excel 文件中的内容:

import com.alibaba.excel.EasyExcel;

import com.alibaba.excel.read.listener.ReadListener;

import com.alibaba.excel.read.listener.ReadListenerAdapter;

import java.util.List;

import java.util.Map;

public class EasyExcelReader {

public static void main(String[] args) {

String excelFilePath = "path/to/your/excel/file.xlsx";

EasyExcel.read(excelFilePath)

.sheet()

.doRead(new ReadListenerAdapter<Map<Integer, String>>() {

@Override

public void invoke(Map<Integer, String> data, AnalysisContext context) {

for (Map.Entry<Integer, String> entry : data.entrySet()) {

System.out.print(entry.getValue() + "t");

}

System.out.println();

}

});

}

}

四、比较与选择

1. Apache POI

优点:

  • 支持 Excel 97-2003 (.xls) 和 Excel 2007+ (.xlsx) 文件。
  • 功能强大,支持复杂的 Excel 操作,如公式计算、图表处理等。
  • 社区活跃,文档和示例丰富。

缺点:

  • 相对复杂,学习曲线较陡。
  • 性能和内存消耗相对较高,不适合处理非常大的数据集。

2. JExcel API

优点:

  • 简单易用,适合处理基本的 Excel 操作。
  • 对 Excel 97-2003 (.xls) 文件有良好的支持。

缺点:

  • 不支持 Excel 2007+ (.xlsx) 文件。
  • 功能相对有限,不适合处理复杂的 Excel 操作。

3. EasyExcel

优点:

  • 性能高,内存占用低,适合处理大规模数据。
  • 简单易用,代码简洁。

缺点:

  • 功能相对单一,主要用于读取和写入基本的 Excel 数据。
  • 文档和社区相对不如 Apache POI 丰富。

五、总结

在 Java 中读取 Excel 文件有多种方式可选,Apache POI、JExcel API、EasyExcel 各有优缺点。Apache POI 功能强大,适合处理复杂的 Excel 操作;JExcel API 简单易用,适合处理基本的 Excel 97-2003 (.xls) 文件;EasyExcel 性能高,内存占用低,适合处理大规模数据。根据具体的项目需求和Excel文件的类型,选择合适的库是关键。

相关问答FAQs:

Q: 如何使用Java读取Excel文件中的内容?
A: Java提供了多种方法来读取Excel文件中的内容。以下是一种常见的方法:

Q: 如何使用Apache POI库来读取Excel文件中的内容?
A: Apache POI是一个流行的Java库,用于读取和写入Microsoft Office格式的文件,包括Excel。以下是使用Apache POI来读取Excel文件的步骤:

Q: 在Java中,如何读取Excel文件中的特定工作表?
A: 如果你只想读取Excel文件中的特定工作表,可以使用Apache POI库中的HSSFWorkbook类的getSheet方法来获取特定的工作表。以下是读取特定工作表的示例代码:

文章包含AI辅助创作,作者:Edit2,如若转载,请注明出处:https://docs.pingcode.com/baike/217064

(0)
Edit2Edit2
免费注册
电话联系

4008001024

微信咨询
微信咨询
返回顶部