当前位置:首页 > Java

java如何导入excel数据

2026-02-05 03:13:30Java

导入Excel数据的常用方法

在Java中导入Excel数据通常使用Apache POI或JExcelAPI等库。以下是几种常见的方法:

使用Apache POI读取Excel文件

Apache POI支持.xls和.xlsx格式的Excel文件。需要添加以下依赖:

<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 readExcel(String filePath) {
        try (Workbook workbook = WorkbookFactory.create(new FileInputStream(filePath))) {
            Sheet sheet = workbook.getSheetAt(0);
            for (Row row : sheet) {
                for (Cell cell : row) {
                    System.out.print(cell.toString() + "\t");
                }
                System.out.println();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用EasyExcel处理大数据量

EasyExcel是阿里巴巴开源的Excel处理工具,适合处理大文件:

java如何导入excel数据

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

读取示例:

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

public class EasyExcelReader {
    public static void readExcel(String filePath) {
        List<Object> data = new ArrayList<>();
        EasyExcel.read(filePath)
                .sheet()
                .doReadSync(data);
        data.forEach(System.out::println);
    }
}

使用JExcelAPI读取旧格式Excel

JExcelAPI适合处理.xls格式文件:

java如何导入excel数据

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

读取示例:

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

public class JExcelReader {
    public static void readExcel(String filePath) {
        try {
            Workbook workbook = Workbook.getWorkbook(new File(filePath));
            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();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

处理不同类型单元格数据

读取Excel时需要处理不同类型的单元格:

switch (cell.getCellType()) {
    case STRING:
        System.out.print(cell.getStringCellValue());
        break;
    case NUMERIC:
        if (DateUtil.isCellDateFormatted(cell)) {
            System.out.print(cell.getDateCellValue());
        } else {
            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("");
}

性能优化建议

处理大文件时建议使用流式读取:

EasyExcel.read(filePath, new AnalysisEventListener<Object>() {
    @Override
    public void invoke(Object data, AnalysisContext context) {
        // 逐行处理数据
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        // 所有数据解析完成
    }
}).sheet().doRead();

这些方法覆盖了Java中处理Excel文件的主要场景,可以根据具体需求选择合适的库和实现方式。

标签: 数据java
分享给朋友:

相关文章

如何安装java

如何安装java

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK下载页面,选择适合操作系统的版本(Windows、macOS或Linux)。推荐下载最新的长期支持(LTS)版本,如Java…

java如何编译

java如何编译

编译Java程序的基本步骤 安装JDK(Java Development Kit)并配置环境变量。确保javac和java命令可在命令行中运行。JDK是编译和运行Java程序的必备工具。 创建Jav…

java如何读取文件

java如何读取文件

读取文件的常用方法 Java提供了多种读取文件的方式,适用于不同场景和需求。以下是几种常见的方法: 使用FileInputStream和BufferedInputStream读取二进制文件…

java如何学习

java如何学习

学习Java的有效方法 理解基础概念 Java是一门面向对象的编程语言,掌握基础概念如变量、数据类型、运算符、控制语句(if-else、循环)是必要的。面向对象的核心概念包括类、对象、继承、多态和封装…

vue实现数据互通

vue实现数据互通

Vue 实现数据互通的方法 Vue 提供了多种方式实现组件间的数据互通,以下是几种常见的方法: 父子组件通信 Props 传递数据 父组件通过 props 向子组件传递数据。 <!-- 父组…

vue实现数据翻译

vue实现数据翻译

Vue 数据翻译实现方案 在 Vue 项目中实现数据翻译通常涉及国际化(i18n)或多语言支持,以下是几种常见方法: 使用 vue-i18n 插件 安装 vue-i18n 依赖: npm inst…