当前位置:首页 > Java

java 如何导入excel

2026-02-04 21:10:00Java

导入Excel的常用方法

使用Apache POI库处理Excel文件是最常见的方式。POI支持.xls(HSSF)和.xlsx(XSSF)格式,需添加以下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>

读取Excel文件示例代码

处理.xlsx文件的代码示例:

try (FileInputStream file = new FileInputStream("input.xlsx");
     Workbook workbook = new XSSFWorkbook(file)) {

    Sheet sheet = workbook.getSheetAt(0);
    for (Row row : sheet) {
        for (Cell cell : row) {
            switch (cell.getCellType()) {
                case STRING -> System.out.print(cell.getStringCellValue() + "\t");
                case NUMERIC -> System.out.print(cell.getNumericCellValue() + "\t");
                case BOOLEAN -> System.out.print(cell.getBooleanCellValue() + "\t");
                default -> System.out.print("UNKNOWN\t");
            }
        }
        System.out.println();
    }
} catch (IOException e) {
    e.printStackTrace();
}

使用EasyExcel处理大数据量

对于大型Excel文件,推荐使用阿里开源的EasyExcel,其采用流式读取降低内存消耗。添加依赖:

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

监听器模式读取示例:

@Slf4j
public class DemoDataListener implements ReadListener<DemoData> {
    @Override
    public void invoke(DemoData data, AnalysisContext context) {
        log.info("读取到数据: {}", data);
    }
}

// 调用方式
EasyExcel.read("largeFile.xlsx", DemoData.class, new DemoDataListener()).sheet().doRead();

数据转换与校验

处理数据时建议进行类型校验:

public Object getCellValue(Cell cell) {
    return switch (cell.getCellType()) {
        case NUMERIC -> 
            DateUtil.isCellDateFormatted(cell) ? 
                cell.getDateCellValue() : 
                cell.getNumericCellValue();
        case STRING -> cell.getStringCellValue().trim();
        case BOOLEAN -> cell.getBooleanCellValue();
        case FORMULA -> cell.getCellFormula();
        default -> null;
    };
}

异常处理建议

增加健壮性处理:

  • 文件存在性检查:Files.exists(Paths.get(filePath))
  • 空单元格处理:CellType.BLANK
  • 内存控制:对于大文件使用SXSSFWorkbook或EasyExcel
  • 编码处理:明确指定文件编码格式

性能优化方案

大规模数据导入时:

  1. 采用分批次读取策略
  2. 使用事件驱动模型(如SAX解析器)
  3. 避免在内存中保留全部数据
  4. 考虑使用数据库批量插入操作
// 使用SXSSFWorkbook示例
try (SXSSFWorkbook workbook = new SXSSFWorkbook(100)) {
    Sheet sheet = workbook.createSheet();
    // 写入时自动刷新临时文件
    for(int i=0; i<100000; i++){
        Row row = sheet.createRow(i);
        row.createCell(0).setCellValue("Data "+i);
        if(i%100==0) {
            ((SXSSFSheet)sheet).flushRows(100);
        }
    }
}

java 如何导入excel

标签: javaexcel
分享给朋友:

相关文章

java如何打开

java如何打开

安装Java开发环境 下载并安装Java Development Kit (JDK),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH变量正…

如何打开java

如何打开java

打开 Java 程序的方法 通过命令行运行 Java 程序 确保已安装 Java Development Kit (JDK) 并配置环境变量。使用 javac 编译 .java 文件,生成 .clas…

如何运行java程序

如何运行java程序

编写Java代码 创建一个以.java为扩展名的文件,例如HelloWorld.java。文件内容需包含一个类定义,类名必须与文件名一致。例如: public class HelloWorld {…

如何配置java环境

如何配置java环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右…

java如何自学

java如何自学

确定学习目标和路径 自学Java需要明确目标,例如开发Web应用、Android应用或后端服务。根据目标选择学习重点,如Java基础、Spring框架或Android开发。制定阶段性计划,从基础语法到…

如何卸载java

如何卸载java

卸载Java的步骤 Windows系统卸载方法 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到Java相关条目(如“Java 8 Update 251”),右键选择卸载并跟随向导完成操…