当前位置: 首页 > ai >正文

Apache POI 介绍与使用指南

文章框架

一、Apache POI 概述

  • 定义:Java API操作Microsoft Office格式文件

  • 核心功能:

    • 读写Excel(.xls, .xlsx)

    • 操作Word、PowerPoint等文档

  • 优势:开源免费、跨平台、功能全面

二、环境准备

  1. Maven依赖配置:

            <!-- poi --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId></dependency>

 三、案例代码

          1.Excel写入实战(代码解析)

public static void POITestWrite()throws Exception{//在内存中创建Excel文件XSSFWorkbook excel=new XSSFWorkbook();//在Excel文件创建一个sheet页XSSFSheet sheet=excel.createSheet("sheet1");//在sheet对象页中创建行 从0开始为第一行XSSFRow row1 = sheet.createRow(0);//在行上创建单元格,并写入单元格内容 单元格也是从0开始 所以1是第二个单元格row1.createCell(1).setCellValue("姓名");row1.createCell(2).setCellValue("城市");//创建第二行XSSFRow row2 = sheet.createRow(1);row2.createCell(1).setCellValue("张三");row2.createCell(2).setCellValue("北京");//创建第三行XSSFRow row3 = sheet.createRow(2);row3.createCell(1).setCellValue("李四");row3.createCell(2).setCellValue("湖北");//创建输出流FileOutputStream out = new FileOutputStream(new File("D:\\sheet1.xlsx"));//写入数据excel.write(out);//关闭输出流文件和excel文件excel.close();out.close();}

关键点说明:

  • createRow()/createCell() 创建行列

  • 单元格索引从0开始(A列=0, B列=1)

        2.Excel读取实战(代码解析)

    public static void POITaskRead() throws Exception{FileInputStream in = new FileInputStream(new File("D:\\sheet1.xlsx"));//读取磁盘上的excel文件XSSFWorkbook excel = new XSSFWorkbook(in);//读取excel中第一个sheet页XSSFSheet sheet = excel.getSheetAt(0);//获取sheet中创建最后一行的行号int lastRowNum = sheet.getLastRowNum();//遍历行for (int i=0;i<=lastRowNum;i++){//获取对应行XSSFRow row = sheet.getRow(i);if(row!=null){//获取单元格内容String cellValue1 = row.getCell(1).getStringCellValue();String cellValue2 = row.getCell(2).getStringCellValue();System.out.println(cellValue1+" "+cellValue2);}}//关闭输入流in.close();//关闭excelexcel.close();}

关键点说明:

  • getLastRowNum() 获取最后一行索引

  • 单元格类型处理:getStringCellValue()/getNumericCellValue()

  • 空值处理建议:添加if (row != null)判断

三、应用场景

  • 报表导出

  • 数据批量导入

  • 自动化测试数据生成

  • 财务数据分析

四、总结

  • Apache POI是Java操作Excel的首选方案

  • 提供从基础读写到高级功能的完整API

  • 注意资源管理和异常处理确保稳定性

http://www.xdnf.cn/news/16009.html

相关文章:

  • Day01_C++
  • ctfshow pwn40
  • CVE-2025-32463漏洞:sudo权限提升漏洞全解析
  • 网络基础17:IRF实验(H3C设备)
  • Dify实战,获取禅道需求,编写测试用例到禅道
  • 【图像翻转+图像的仿射变换】——图像预处理(OpenCV)
  • 05-ES6
  • 【Spring Cloud Gateway 实战系列】基础篇:路由、断言、过滤器、负载均衡深度解析
  • vscode怎么安装MINGW
  • 利用 Playwright MCP 构建浏览器自动化流程:技术路径与操作解析
  • Spring @Value注解终极指南
  • 传统RNN模型笔记:输入数据长度变化的结构解析
  • 二分查找----2.搜索二维矩阵
  • docker部署postgresql
  • 美区跨境卖家尾程物流怎么操作?美国跨境物流自发货走什么?
  • 力扣146:LRU缓存
  • DIOR-ViT:用于病理图像癌症分类的差分序数学习视觉Transformer|文献速递-医学影像算法文献分享
  • 基于Python flask的常用AI工具功能数据分析与可视化系统设计与实现,技术包括LSTM、SVM、朴素贝叶斯三种算法,echart可视化
  • LIMO:仅需817样本激活大模型数学推理能力,挑战“数据规模至上”传统范式
  • 传统RNN模型
  • 嵌入式开发学习(第三阶段 Linux系统开发)
  • 2025年6月GESP(C++五级):最大公因数
  • 【多任务YOLO】A-YOLOM
  • 面试题:sql题一
  • Spring Boot环境搭建与核心原理深度解析
  • 嵌入式开发学习———Linux环境下数据结构学习(一)
  • GitHub 上的开源项目 ticktick(滴答清单)
  • Kotlin伴生对象
  • Kotlin 作用域函数 let 的实现原理
  • 什么是检索增强生成(RAG)?