当前位置:首页 > Java

java 如何打开excel

2026-03-26 02:38:03Java

使用 Apache POI 库读取 Excel 文件

Apache POI 是处理 Microsoft Office 文件(包括 Excel)的流行 Java 库。需要添加以下依赖:

<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) {
        try (FileInputStream file = new FileInputStream("example.xlsx");
             Workbook workbook = WorkbookFactory.create(file)) {

            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();
        }
    }
}

使用 JExcelAPI 读取旧版 Excel 文件

对于 .xls 格式,可以使用 JExcelAPI(jxl):

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

代码示例:

import jxl.*;
import java.io.File;

public class JExcelReader {
    public static void main(String[] args) {
        try {
            Workbook workbook = Workbook.getWorkbook(new File("example.xls"));
            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();
            }
            workbook.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用 EasyExcel 处理大数据量

EasyExcel 适合处理大文件且内存占用低:

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

读取示例:

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

public class EasyExcelReader {
    public static void main(String[] args) {
        String fileName = "example.xlsx";
        EasyExcel.read(fileName, new ExcelDataListener()).sheet().doRead();
    }
}

class ExcelDataListener implements AnalysisEventListener<List<String>> {
    @Override
    public void invoke(List<String> data, AnalysisContext context) {
        System.out.println(data);
    }
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {}
}

写入 Excel 文件

使用 Apache POI 写入 .xlsx 文件:

java 如何打开excel

import org.apache.poi.xssf.usermodel.*;
import java.io.FileOutputStream;

public class ExcelWriter {
    public static void main(String[] args) {
        try (XSSFWorkbook workbook = new XSSFWorkbook();
             FileOutputStream out = new FileOutputStream("output.xlsx")) {

            XSSFSheet sheet = workbook.createSheet("Sheet1");
            XSSFRow row = sheet.createRow(0);
            row.createCell(0).setCellValue("Hello");
            row.createCell(1).setCellValue("World");

            workbook.write(out);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意事项

处理 Excel 文件时需注意文件路径权限问题。不同库对 Excel 版本的支持有差异:Apache POI 支持 .xls.xlsx,而 JExcelAPI 仅支持 .xls。大数据量场景推荐使用 EasyExcel 或 Apache POI 的流式 API(SXSSFWorkbook)。

标签: javaexcel
分享给朋友:

相关文章

java如何生成随机数

java如何生成随机数

生成随机数的方法 在Java中生成随机数可以通过多种方式实现,以下是几种常见的方法: 使用Math.random()方法 Math.random()方法返回一个double类型的伪随机数,范围在[0…

java如何调试

java如何调试

调试Java程序的基本方法 使用IDE内置的调试工具(如IntelliJ IDEA或Eclipse)是最常见的方式。在代码行号旁点击设置断点,启动调试模式后,程序会在断点处暂停,允许查看变量值、调用栈…

win7如何配置java环境变量

win7如何配置java环境变量

下载并安装Java 从Oracle官网下载适合的Java Development Kit (JDK)安装包,选择与系统位数(32位或64位)匹配的版本。运行安装程序,按照提示完成安装,默认路径通常为C…

php 实现java md5加密

php 实现java md5加密

PHP 实现 Java MD5 加密的兼容方法 Java 和 PHP 的 MD5 加密结果可能存在差异,主要因字符编码或输出格式不同。以下是确保两者结果一致的方法: 使用 hash 函数并处理编码…

java如何创建线程

java如何创建线程

在Java中创建线程主要有两种方式:继承Thread类和实现Runnable接口。以下是具体实现方法: 继承Thread类 通过继承Thread类并重写run()方法,可以创建一个线程。启动线程时调…

如何使用java

如何使用java

安装Java开发环境 从Oracle官网下载JDK(Java Development Kit)并安装。配置环境变量,确保JAVA_HOME指向JDK安装路径,并将bin目录添加到系统PATH中。 验…