java怎么操作Excel文件 通过POI或EasyExcel读写Excel文件

答案:Java操作Excel常用Apache POI和EasyExcel,前者适合小数据量及样式控制,后者适用于大数据量高性能场景。

java怎么操作excel文件 通过poi或easyexcel读写excel文件

Java操作Excel文件最常用的方式是使用Apache POI和EasyExcel。两者都能实现对Excel的读写,但适用场景略有不同。下面分别介绍它们的基本用法和特点。

1. 使用Apache POI读写Excel

Apache POI是Apache基金会提供的开源库,支持读写Microsoft Office格式文件,包括Excel(.xls和.xlsx)。

核心依赖:

在Maven项目中添加以下依赖:

对于XLS(2003格式):

立即学习“Java免费学习笔记(深入)”;

poi: 最基础的包

对于XLSX(2007+格式):

poi-ooxml: 支持xlsx格式

完整依赖示例:

    org.apache.poi    poi-ooxml    5.2.3

写入Excel示例:

巧文书 巧文书

巧文书是一款AI写标书、AI写方案的产品。通过自研的先进AI大模型,精准解析招标文件,智能生成投标内容。

巧文书 61 查看详情 巧文书

import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileOutputStream;public class WriteExcel {    public static void main(String[] args) throws Exception {        Workbook workbook = new XSSFWorkbook();        Sheet sheet = workbook.createSheet("用户数据");                Row header = sheet.createRow(0);        header.createCell(0).setCellValue("姓名");        header.createCell(1).setCellValue("年龄");        Row row = sheet.createRow(1);        row.createCell(0).setCellValue("张三");        row.createCell(1).setCellValue(25);        try (FileOutputStream out = new FileOutputStream("users.xlsx")) {            workbook.write(out);        }        workbook.close();    }}

读取Excel示例:

import org.apache.poi.ss.usermodel.*;import java.io.FileInputStream;public class ReadExcel {    public static void main(String[] args) throws Exception {        try (FileInputStream fis = new FileInputStream("users.xlsx");             Workbook workbook = new XSSFWorkbook(fis)) {            Sheet sheet = workbook.getSheetAt(0);            for (Row row : sheet) {                for (Cell cell : row) {                    switch (cell.getCellType()) {                        case STRING:                            System.out.print(cell.getStringCellValue() + "t");                            break;                        case NUMERIC:                            System.out.print(cell.getNumericCellValue() + "t");                            break;                        default:                            System.out.print("未知t");                    }                }                System.out.println();            }        }    }}

2. 使用EasyExcel读写Excel

EasyExcel是阿里巴巴开源的框架,基于POI封装,解决了大文件内存溢出问题,适合处理大量数据的导入导出。

优点:内存占用低:采用SAX模式逐行读取,不将整个文件加载到内存 API简单:通过注解绑定实体类,简化代码 性能好:适合百万级数据处理核心依赖:

    com.alibaba    easyexcel    3.3.2

定义数据模型:

public class User {    private String name;    private Integer age;        // getter/setter 省略}

写入Excel:

import com.alibaba.excel.EasyExcel;import java.util.Arrays;import java.util.List;public class EasyWrite {    public static void main(String[] args) {        List data = Arrays.asList(            new User("李四", 30),            new User("王五", 28)        );        String fileName = "users_easy.xlsx";        EasyExcel.write(fileName, User.class).sheet("模板").doWrite(data);    }}

读取Excel:

public class EasyRead {    public static void main(String[] args) {        String fileName = "users_easy.xlsx";        EasyExcel.read(fileName, User.class, new PageReadListener(dataList -> {            for (User user : dataList) {                System.out.println("读取到:" + user.getName() + ", " + user.getAge());            }        })).sheet().doReadAll();    }}

3. POI vs EasyExcel 如何选择?

根据实际需求决定使用哪个工具:

如果只是处理小量数据(几千行以内),结构复杂或需要样式控制,推荐使用Apache POI 如果是大批量数据导入导出(如报表、日志),注重性能和稳定性,优先选择EasyExcel EasyExcel更适合Web应用中的上传下载场景 POI更灵活,可以精确控制单元格样式、合并、图表等高级功能基本上就这些。两种方式各有优势,理解清楚后按需选择即可。

以上就是java怎么操作Excel文件 通过POI或EasyExcel读写Excel文件的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/296554.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
swoole开发功能的高性能文件上传与下载实现
上一篇 2026年10月23日 05:38:11
Go并发:为什么在同一个Goroutine中使用无缓冲通道会导致死锁?
下一篇 2025年12月16日 12:33:22

相关推荐

  • 如何在VSCode中格式化Laravel API JSON输出 Laravel结构美化插件推荐配置

    如何在VSCode中格式化Laravel API JSON输出 Laravel结构美化插件推荐配置如何在VSCode中格式化Laravel API JSON输出 Laravel结构美化插件推荐配置如何在VSCode中格式化Laravel API JSON输出 Laravel结构美化插件推荐配置如何在VSCode中格式化Laravel API JSON输出 Laravel结构美化插件推荐配置

    在%ignore_a_1%中安装prettier插件并设为json默认格式化器;2. 配置settings.json启用保存时自动格式化;3. laravel响应中添加json_pretty_print选项以美化输出。如此即可让api json在开发环境既传输紧凑又查看美观,彻底告别乱码,提升调试效…

    2026年10月23日 • 用户投稿
    100
  • 手机QQ邮箱登录网页版 QQ邮箱移动端入口

    手机QQ邮箱登录网页版 QQ邮箱移动端入口手机QQ邮箱登录网页版 QQ邮箱移动端入口手机QQ邮箱登录网页版 QQ邮箱移动端入口手机QQ邮箱登录网页版 QQ邮箱移动端入口

    手机qq邮箱登录网页版入口在哪里?这是不少用户关心的问题,接下来由php小编为大家带来手机qq邮箱移动端登录入口及相关使用方法,感兴趣的用户一起随小编来瞧瞧吧! https://www.php.cn/link/02921182231b86367ac80f0a6cfcb901 移动端访问方式 1、在手…

    2026年10月23日 • 用户投稿
    000
  • 赛尔号米特拉异虫终极指南:高速虫系杀手的巅峰配装

    赛尔号米特拉异虫终极指南:高速虫系杀手的巅峰配装赛尔号米特拉异虫终极指南:高速虫系杀手的巅峰配装赛尔号米特拉异虫终极指南:高速虫系杀手的巅峰配装赛尔号米特拉异虫终极指南:高速虫系杀手的巅峰配装

    在巅峰对决的竞技舞台上,米特拉异虫宛如一把涂满剧毒的利刃,凭借其独特的属性压制与爆发潜能,成为针对特定阵容的战术奇兵!要想完全释放这只虫系精锐的战场统治力,精准的培养路径与技能搭配显得尤为重要。本文将深入剖析其核心机制与实战技巧。 一、属性定位与种族值解析属性特性:纯粹的虫系精灵,在面对混沌战斗系、…

    2026年10月23日 • 用户投稿
    000
  • win10自带的邮件应用怎么设置_win10邮件应用配置教程

    win10自带的邮件应用怎么设置_win10邮件应用配置教程win10自带的邮件应用怎么设置_win10邮件应用配置教程win10自带的邮件应用怎么设置_win10邮件应用配置教程win10自带的邮件应用怎么设置_win10邮件应用配置教程

    首先确认账户类型并使用正确的密码或授权码,再按步骤配置。若自动添加失败,则手动输入IMAP/POP3服务器信息,确保端口和加密方式正确,最终通过授权码登录非微软邮箱。 如果您尝试在Windows 10自带的邮件应用中添加或配置电子邮件账户,但无法成功登录或同步邮件,则可能是由于账户类型选择不当、密码…

    2026年10月23日 • 用户投稿
    000
  • 寻找三位数排列后的最大整数

    寻找三位数排列后的最大整数寻找三位数排列后的最大整数寻找三位数排列后的最大整数寻找三位数排列后的最大整数

    本文旨在提供一种高效的方法,通过对任意三位正整数的各位数字进行重新排列,从而获得能够组成的最大整数。文章将介绍两种实现方案:一种是基于Java Stream的排序方法,另一种是不使用排序的循环比较方法,并附带详细代码示例和解释,帮助读者理解和应用。 方法一:基于Java Stream的排序 此方法利…

    2026年10月23日 • 用户投稿
    100
  • 如何在mysql中使用覆盖索引加速查询

    如何在mysql中使用覆盖索引加速查询如何在mysql中使用覆盖索引加速查询如何在mysql中使用覆盖索引加速查询如何在mysql中使用覆盖索引加速查询

    覆盖索引指查询所需字段均包含在索引中,无需回表。例如对users表创建(name, age, city)复合索引后,SELECT name, age WHERE name=’John’ AND age>25可直接从索引获取数据。设计时应包含所有SELECT、WHERE、…

    2026年10月23日 • 用户投稿
    100
  • 夸克AI平台官方主页链接 夸克AI智能工具官网直达入口地址

    夸克AI平台官方主页链接 夸克AI智能工具官网直达入口地址夸克AI平台官方主页链接 夸克AI智能工具官网直达入口地址夸克AI平台官方主页链接 夸克AI智能工具官网直达入口地址夸克AI平台官方主页链接 夸克AI智能工具官网直达入口地址

    夸克AI平台官方主页链接是http://www.quark.cn,该平台集成AI搜索、文档处理、图片识别和语音搜索等功能,提供跨设备数据同步与智能内容生成服务。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 夸克AI平台官方主页链接在哪里?…

    2026年10月23日 • 用户投稿
    100
  • Java中自动类型提升规则是什么

    Java中自动类型提升按数据类型容量从小到大(byte→short→int→long→float→double)进行,char参与运算时也提升为int;算术运算中所有较小类型先提升为int,若存在long、float、double,则整个表达式相应提升;赋值时仅当右侧类型可安全容纳于左侧时自动转换,…

    2026年10月23日
    500
  • LINUX如何永久关闭防火墙_LINUX防火墙关闭与禁用教程

    在某些开发或测试环境中,Linux 防火墙可能会干扰服务的正常通信。为了简化网络调试,用户可能需要永久关闭防火墙。不同 Linux 发行版使用的防火墙管理工具不同,常见的有 firewalld(CentOS/RHEL/Fedora)、ufw(Ubuntu/Debian)以及传统的 iptables。…

    2026年10月23日
    300
  • MySQL中外键约束详解 外键在表关系维护中的作用

    外键约束在mysql中用于维护表间关联关系,避免脏数据并提升一致性。它通过将某表字段指向另一表主键,确保数据逻辑一致,如订单表引用用户表id防止孤儿记录。其约束行为包括:1.restrict禁止主表变更若从表存在记录;2.cascade自动同步删除或更新从表数据;3.set null允许主表变更后设…

    2026年10月23日
    500
  • Java中处理多类型列表元素并更新指定值的方法

    Java中处理多类型列表元素并更新指定值的方法Java中处理多类型列表元素并更新指定值的方法Java中处理多类型列表元素并更新指定值的方法Java中处理多类型列表元素并更新指定值的方法

    本文详细介绍了在java中如何操作包含多种类型对象的`list`。核心内容包括如何安全地访问列表中特定索引处的元素,通过类型检查(`instanceof`)确认其类型,将其强制转换为目标类型(如`integer`)以执行算术运算,并最终使用`set`方法更新列表中的值,确保代码的健壮性和正确性。 J…

    2026年10月23日 • 用户投稿
    000
  • mac怎么修改docker镜像源_MAC Docker镜像源配置方法

    配置国内镜像加速地址可解决Docker拉取镜像速度慢的问题,适用于macOS Sonoma系统的三种方法:一、通过Docker Desktop图形界面,在Settings的Docker Engine选项卡中修改registry-mirrors字段并添加国内镜像源如https://docker.mir…

    2026年10月23日
    200
  • 如何在mysql中选择EXISTS和IN进行查询

    如何在mysql中选择EXISTS和IN进行查询如何在mysql中选择EXISTS和IN进行查询如何在mysql中选择EXISTS和IN进行查询如何在mysql中选择EXISTS和IN进行查询

    答案:EXISTS适合相关子查询和存在性判断,IN适合小量明确值的匹配;性能上IN对小结果集更快,EXISTS在大表关联时更优,需结合索引和数据分布选择。 在MySQL中,EXISTS 和 IN 都用于判断某个条件是否成立,常用于子查询场景。选择哪一个,主要取决于数据量、索引情况以及查询逻辑的清晰度…

    2026年10月23日 • 用户投稿
    100
  • 华为AI眼镜怎样开启节能模式_华为AI眼镜电池节能模式设置与使用方法

    华为AI眼镜怎样开启节能模式_华为AI眼镜电池节能模式设置与使用方法华为AI眼镜怎样开启节能模式_华为AI眼镜电池节能模式设置与使用方法华为AI眼镜怎样开启节能模式_华为AI眼镜电池节能模式设置与使用方法华为AI眼镜怎样开启节能模式_华为AI眼镜电池节能模式设置与使用方法

    华为AI眼镜续航缩短可通过设置优化改善:一、关闭非必要通知播报以减少系统唤醒;二、禁用安静环境减小音量功能降低功耗;三、将音频播放音量调至60%以下以节能护耳;四、定期充满电并避免低温使用,长期不用时每两周充电至50%以上以维护电池健康。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无…

    2026年10月23日 • 用户投稿
    100
  • 探索Java中DUP2、DUP2_X1与SWAP JVM指令的生成机制

    探索Java中DUP2、DUP2_X1与SWAP JVM指令的生成机制探索Java中DUP2、DUP2_X1与SWAP JVM指令的生成机制探索Java中DUP2、DUP2_X1与SWAP JVM指令的生成机制探索Java中DUP2、DUP2_X1与SWAP JVM指令的生成机制

    本文深入探讨了如何在java代码中生成特定的jvm栈操作指令,特别是`dup2`。通过具体的java代码示例和`javap`反编译输出,详细分析了`dup2`指令的生成原理。同时,文章也讨论了`dup2_x1`和`swap`指令在标准`javac`编译中难以直接生成的原因,为理解jvm底层机制提供了…

    2026年10月23日 • 用户投稿
    100
  • 高分辨率屏幕在文字处理工作中的优势是否明显?

    高分辨率屏幕在文字处理中显著提升效率与舒适度,首先通过更高信息密度减少滚动和缩放,使用户能同时查看更多内容;其次凭借高像素密度实现文字边缘平滑锐利,降低眼睛辨识负担,缓解长时间阅读导致的视觉疲劳;再者支持多窗口并排显示,提升多任务处理效率;在校对与排版中,可实现整页预览、细节放大与多文档对比,增强“…

    2026年10月23日
    000
  • 抖音点赞失败怎么办 抖音点赞功能修复与操作方法

    抖音点赞失败怎么办 抖音点赞功能修复与操作方法抖音点赞失败怎么办 抖音点赞功能修复与操作方法抖音点赞失败怎么办 抖音点赞功能修复与操作方法抖音点赞失败怎么办 抖音点赞功能修复与操作方法

    点赞功能异常可能因系统限制、网络问题、内容设置、账号模式或应用故障导致。1、避免高频点赞和使用第三方工具,防止触发行为限制;2、切换稳定网络并重启应用以改善连接;3、确认直播间或视频未禁用互动功能;4、检查是否开启青少年模式或存在账号限制;5、清除缓存并更新抖音至最新版本以修复技术故障。 如果您在抖…

    2026年10月23日 • 用户投稿
    100
  • 数据恢复软件使用:误删文件找回方法

    数据恢复软件使用:误删文件找回方法数据恢复软件使用:误删文件找回方法数据恢复软件使用:误删文件找回方法数据恢复软件使用:误删文件找回方法

    误删文件可找回,关键立即停止写入并选对工具。刚删除可用Ctrl+Z或回收站还原;清空回收站则用转转大师、数据蛙、Recuva等软件恢复,注意安装位置与保存路径避开原盘,利用预览确认文件完整性。 电脑文件误删别慌,只要没被新数据覆盖,找回成功率很高。关键在操作要对路,工具选得准。 立即停止写入,防止数…

    2026年10月23日 • 用户投稿
    000
  • deepseekOCR免费识别工具使用通道 deepseek-ocr直接使用免登录链接

    deepseekOCR免费识别工具使用通道 deepseek-ocr直接使用免登录链接deepseekOCR免费识别工具使用通道 deepseek-ocr直接使用免登录链接deepseekOCR免费识别工具使用通道 deepseek-ocr直接使用免登录链接deepseekOCR免费识别工具使用通道 deepseek-ocr直接使用免登录链接

    deepseekOCR免费使用通道为https://deep.ch-at.pw/,无需注册即可在线识别多格式文档,支持图片与PDF文字提取、AI增强处理及一键复制功能。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ deepseekOCR免…

    2026年10月23日 • 用户投稿
    000
  • win10桌面图标大小怎么调整_win10桌面图标调整技巧

    win10桌面图标大小怎么调整_win10桌面图标调整技巧win10桌面图标大小怎么调整_win10桌面图标调整技巧win10桌面图标大小怎么调整_win10桌面图标调整技巧win10桌面图标大小怎么调整_win10桌面图标调整技巧

    可通过快捷键、右键菜单、注册表或显示缩放四种方法调整Windows 10桌面图标大小,适配不同使用需求与显示环境。 如果您发现Windows 10桌面上的图标过大或过小,影响了视觉体验或操作效率,可以通过多种方式进行调整。以下提供几种有效的方法来改变桌面图标的显示大小。 本文运行环境:Dell XP…

    2026年10月23日 • 用户投稿
    100

发表回复

登录后才能评论
关注微信