当前位置:首页 > Java

java 如何导入excel

2026-03-03 08:19:22Java

导入Excel的方法

Java中导入Excel文件可以通过多种库实现,常见的有Apache POI、JExcelAPI和EasyExcel等。以下是几种主流方法的详细说明。

使用Apache POI导入Excel

Apache POI是处理Microsoft Office文件的主流库,支持.xls和.xlsx格式。

添加依赖(Maven)

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

读取.xlsx文件示例

import org.apache.poi.ss.usermodel.*;
import java.io.FileInputStream;

public class ExcelReader {
    public static void main(String[] args) throws Exception {
        String filePath = "example.xlsx";
        FileInputStream fis = new FileInputStream(filePath);
        Workbook workbook = WorkbookFactory.create(fis);
        Sheet sheet = workbook.getSheetAt(0);

        for (Row row : sheet) {
            for (Cell cell : row) {
                System.out.print(cell.toString() + "\t");
            }
            System.out.println();
        }
        workbook.close();
        fis.close();
    }
}

使用EasyExcel导入Excel

EasyExcel是阿里开源的Excel处理工具,适合大数据量场景,内存占用低。

添加依赖(Maven)

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>3.3.2</version>
</dependency>

读取Excel示例

import com.alibaba.excel.EasyExcel;
import java.util.List;

public class EasyExcelReader {
    public static void main(String[] args) {
        String fileName = "example.xlsx";
        List<Object> data = EasyExcel.read(fileName).sheet().doReadSync();
        data.forEach(System.out::println);
    }
}

使用JExcelAPI导入Excel

JExcelAPI适合处理.xls格式,API较为简单。

添加依赖(Maven)

<dependency>
    <groupId>net.sourceforge.jexcelapi</groupId>
    <artifactId>jxl</artifactId>
    <version>2.6.12</version>
</dependency>

读取.xls文件示例

import jxl.Sheet;
import jxl.Workbook;
import java.io.File;

public class JExcelReader {
    public static void main(String[] args) throws Exception {
        Workbook workbook = Workbook.getWorkbook(new File("example.xls"));
        Sheet sheet = workbook.getSheet(0);
        for (int i = 0; i < sheet.getRows(); i++) {
            for (int j = 0; j < sheet.getColumns(); j++) {
                System.out.print(sheet.getCell(j, i).getContents() + "\t");
            }
            System.out.println();
        }
        workbook.close();
    }
}

处理大数据量的优化建议

对于大型Excel文件(如超过10万行),建议采用以下优化措施:

Apache POI的SAX模式

import org.apache.poi.xssf.eventusermodel.XSSFReader;
import org.apache.poi.openxml4j.opc.OPCPackage;

OPCPackage pkg = OPCPackage.open("large.xlsx");
XSSFReader reader = new XSSFReader(pkg);
// 使用XML解析器逐行处理数据

EasyExcel的监听器模式

java 如何导入excel

EasyExcel.read("large.xlsx", DemoData.class, new AnalysisEventListener<DemoData>() {
    @Override
    public void invoke(DemoData data, AnalysisContext context) {
        // 逐行处理
    }
}).sheet().doRead();

格式兼容性注意事项

  1. .xls(HSSF)和.xlsx(XSSF/SXSSF)需使用不同的POI类
  2. 日期格式需特殊处理:Cell.getDateCellValue()
  3. 公式单元格需评估:DataFormatter.formatCellValue(cell, formulaEvaluator)

以上方法覆盖了从传统格式到现代格式的Excel导入需求,开发者可根据项目规模、性能要求和维护成本选择合适方案。

标签: javaexcel
分享给朋友:

相关文章

java如何连接mysql数据库

java如何连接mysql数据库

连接 MySQL 数据库的步骤 添加 MySQL 驱动依赖 在项目中引入 MySQL 的 JDBC 驱动。如果使用 Maven,可以在 pom.xml 中添加以下依赖: <dependency…

如何启用java

如何启用java

启用 Java 的方法 检查 Java 是否已安装 在命令行或终端输入 java -version,如果显示版本信息,说明 Java 已安装。若未安装,需从 Oracle 官网 或 OpenJDK 下…

java程序如何打包

java程序如何打包

打包Java程序的方法 使用JAR打包 Java程序可以通过JAR(Java Archive)格式打包,这是一种常见的压缩格式,适用于包含多个类文件和资源的项目。以下是使用JAR打包的步骤: 确保项…

java如何调用另一个类的方法

java如何调用另一个类的方法

调用另一个类的方法 在Java中调用另一个类的方法,通常需要创建该类的对象或直接通过类名调用(静态方法)。以下是几种常见的方式: 通过对象实例调用实例方法 创建一个目标类的对象,通过对象调用其方法。…

如何用java编程

如何用java编程

Java编程基础指南 环境配置 安装Java开发工具包(JDK),推荐使用最新版本。配置环境变量,确保JAVA_HOME指向JDK安装路径,并将bin目录添加到系统PATH中。验证安装是否成功: j…

java实现vue接口

java实现vue接口

Java 实现 Vue 接口的方法 在 Java 中实现 Vue 前端调用的接口,通常需要使用 Spring Boot 框架构建 RESTful API。以下是具体的实现步骤和代码示例。 创建 Sp…