当前位置:首页 > Java

java如何读取xls

2026-03-25 00:26:47Java

读取XLS文件的方法

Java可以通过Apache POI库来读取XLS格式的Excel文件。Apache POI是一个流行的Java库,用于处理Microsoft Office格式的文件。

添加依赖

在Maven项目中,需要在pom.xml文件中添加以下依赖:

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

对于Gradle项目,在build.gradle中添加:

implementation 'org.apache.poi:poi:5.2.3'

基本读取步骤

使用HSSFWorkbook类来处理XLS文件:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileInputStream;
import java.io.IOException;

public class ReadXLS {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("example.xls");
             HSSFWorkbook workbook = new HSSFWorkbook(fis)) {

            HSSFSheet sheet = workbook.getSheetAt(0);

            for (int rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex++) {
                HSSFRow row = sheet.getRow(rowIndex);
                if (row != null) {
                    for (int cellIndex = 0; cellIndex < row.getLastCellNum(); cellIndex++) {
                        HSSFCell cell = row.getCell(cellIndex);
                        if (cell != null) {
                            System.out.print(cell.toString() + "\t");
                        }
                    }
                    System.out.println();
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

处理不同类型的数据

XLS文件中的单元格可能包含不同类型的数据:

switch (cell.getCellType()) {
    case STRING:
        System.out.print(cell.getStringCellValue());
        break;
    case NUMERIC:
        System.out.print(cell.getNumericCellValue());
        break;
    case BOOLEAN:
        System.out.print(cell.getBooleanCellValue());
        break;
    case FORMULA:
        System.out.print(cell.getCellFormula());
        break;
    default:
        System.out.print("");
}

处理日期格式

对于日期类型的单元格:

if (DateUtil.isCellDateFormatted(cell)) {
    System.out.print(cell.getDateCellValue());
} else {
    System.out.print(cell.getNumericCellValue());
}

读取特定区域

只读取特定行和列范围内的数据:

int startRow = 1;
int endRow = 10;
int startCol = 0;
int endCol = 5;

for (int rowIndex = startRow; rowIndex <= endRow; rowIndex++) {
    HSSFRow row = sheet.getRow(rowIndex);
    if (row != null) {
        for (int cellIndex = startCol; cellIndex <= endCol; cellIndex++) {
            HSSFCell cell = row.getCell(cellIndex);
            // 处理单元格数据
        }
    }
}

注意事项

  • 确保文件路径正确且有读取权限
  • 处理完工作簿后应关闭资源,使用try-with-resources自动管理
  • 对于大文件,考虑使用事件驱动的API(如HSSFEventUserModel)以减少内存消耗
  • 不同版本的POI可能有API差异,注意版本兼容性

高级特性

对于更复杂的操作,可以:

java如何读取xls

  • 使用HSSFFormulaEvaluator计算公式结果
  • 通过HSSFDataValidation处理数据验证
  • 利用HSSFHeaderHSSFFooter处理页眉页脚
  • 使用HSSFComment处理单元格注释

标签: javaxls
分享给朋友:

相关文章

java如何下载

java如何下载

下载Java的步骤 访问Oracle官方网站或OpenJDK项目页面下载Java开发工具包(JDK)。Oracle JDK适用于商业用途,OpenJDK为开源版本。 打开浏览器,进入Oracle J…

如何编译java文件

如何编译java文件

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证。若未安装,需从Oracle或Open…

如何配置java环境变量

如何配置java环境变量

下载并安装JDK 从Oracle官网或OpenJDK项目下载适合操作系统的JDK安装包。运行安装程序,按照提示完成安装,默认路径通常为C:\Program Files\Java\jdk-版本号。 配…

如何搭建java环境

如何搭建java环境

下载JDK 访问Oracle官网或OpenJDK官网下载适合操作系统的JDK安装包。推荐选择长期支持版本(如JDK 17或JDK 21)。 安装JDK 运行下载的安装程序,按照向导完成安装。注意…

java中如何获取当前时间

java中如何获取当前时间

获取当前时间的几种方法 使用 java.time 包(Java 8及以上推荐) import java.time.LocalDateTime; LocalDateTime currentTime =…

java面试官如何面试别人

java面试官如何面试别人

考察基础知识 从Java核心概念入手,包括面向对象特性(封装、继承、多态)、集合框架(ArrayList vs LinkedList、HashMap实现原理)、异常处理机制、多线程(线程池、锁机制)等…