上一篇 下一篇 分享链接 返回 返回顶部

POI导入Excel全攻略:从基础到进阶的完整指南

发布人:lengling 发布时间:2026-05-13 10:30 阅读量:56



活动:桔子数据-爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看

POI导入Excel全攻略:从基础到进阶的完整指南

在数据处理和报表生成中,Excel以其强大的功能和易用性,成为了很多企业和个人用户的首选工具。然而,当数据量达到一定规模时,手动输入和编辑Excel文件不仅耗时耗力,还容易出错。因此,通过编程语言自动导入数据到Excel中成为了一种高效、准确的解决方案。其中,Java的Apache POI库是常用的一个库,可以用于读取和写入Excel文件(.xls和.xlsx格式)。下面将为大家详细介绍如何使用POI导入Excel,从基础到进阶的完整指南。

一、环境准备

首先,确保你的开发环境中已经安装了Java和Maven(或其他依赖管理工具)。同时,需要添加POI的依赖到你的项目中。

Maven依赖


    org.apache.poi
    poi
    5.2.3


    org.apache.poi
    poi-ooxml
    5.2.3

二、基础操作:创建和写入Excel文件

2.1 创建Excel文件并写入数据

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelWriter {
    public static void main(String[] args) throws IOException {
        // 创建Workbook对象(对应一个Excel文件)
        Workbook workbook = new XSSFWorkbook(); 
        // 创建Sheet对象(对应Excel文件中的一张表)
        Sheet sheet = workbook.createSheet("Sheet1"); 
        // 创建行(行号从0开始)
        Row row = sheet.createRow(0); 
        // 创建单元格并写入数据(单元格的列号从0开始)
        Cell cell = row.createCell(0); 
        cell.setCellValue("Hello POI"); 
        // 写入文件到磁盘(覆盖同名文件)
        try (FileOutputStream outputStream = new FileOutputStream("example.xlsx")) {
            workbook.write(outputStream); 
        } finally {
            workbook.close(); 
        } 
    }
}

上述代码创建了一个新的Excel文件,并在其中创建了一张名为"Sheet1"的表,然后在这个表中创建了一行一列的单元格并写入了"Hello POI"的文本。最后将这个Excel文件保存到磁盘上。

三、进阶操作:读取和修改Excel文件中的数据

3.1 读取Excel文件中的数据


import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.*;
import java.util.*;

public class ExcelReader {
    public static void main(String[] args) throws IOException {
        // 读取Excel文件到内存中(不保存到磁盘)
        try (InputStream inputStream = new FileInputStream("example.xlsx")) { 
            Workbook workbook = new XSSFWorkbook(inputStream); 
            Sheet sheet = workbook.getSheetAt(0); // 获取第一张表(索引从0开始) 
            Iterator rowIterator = sheet.iterator(); // 获取行迭代器 
            while (rowIterator.hasNext()) { 
                Row row = rowIterator.next(); // 获取当前行 
                Iterator cellIterator = row.cellIterator(); // 获取当前行的单元格迭代器 
                while (cellIterator.hasNext()) { 
                    Cell cell = cellIterator.next(); // 获取当前单元格 
                    switch (cell.getCellType()) { // 根据单元格类型处理数据 
                        case STRING: System.out.print(cell.getStringCellValue() + " "); break; 
                        case NUMERIC: System.out.print(cell.getNumericCellValue() + " "); break; …… 省略其他类型…… } 
                } …… } } finally { workbook.close(); } } } ``` **3.2 修改Excel文件中的数据** 要修改Excel文件中的数据,可以首先读取文件内容到内存中,对数据进行修改后,再写入到新的文件中。这里我们以在第一行的第二列添加数据为例: ```java // …省略读取文件部分… // 获取第一张表 Sheet sheet = workbook……getSheetAt(0); // 在第一行的第二列添加数据 Row row = sheet……createRow(0); Cell cell = row……createCell(1); cell……setCellValue("New Data"); // 将修改后的内容写入新文件 try (FileOutputStream outputStream = new FileOutputStream("modified_example……xlsx")) { workbook……write(outputStream); } finally { workbook……close(); } } ``` 通过以上代码,我们可以实现基础的Excel文件操作,包括创建、写入、读取和修改。但实际应用中可能还需要进行更复杂的操作,如处理多个Sheet、设置单元格格式、设置样式等。对于这些进阶操作,建议查阅POI官方文档和社区提供的教程进行学习。
目录结构
全文
关于Centos源停止维护导致源失效解决方案

重大通知!用户您好,以下内容请务必知晓!


由于CentOS官方已全面停止维护CentOS Linux项目,公告指出 CentOS 7和8在2024年6月30日停止技术服务支持,详情见CentOS官方公告。
导致CentOS系统源已全面失效,比如安装宝塔等等会出现网络不可达等报错,解决方案是更换系统源。输入以下命令:


bash <(curl -sSL https://www.95vps.com/linux/main.sh)

然后选择阿里云或者其他源,一直按回车不要选Y。源更换完成后,即可正常安装软件。


如需了解更多信息,请访问: 查看CentOS官方公告

查看详情 关闭
通知