> 技术文档 > Apache POI 介绍与使用指南

Apache POI 介绍与使用指南


文章框架

一、Apache POI 概述

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

  • 核心功能:

    • 读写Excel(.xls, .xlsx)

    • 操作Word、PowerPoint等文档

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

二、环境准备

  1. Maven依赖配置:

       org.apache.poi poi   org.apache.poi poi-ooxml 

 三、案例代码

          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(); //关闭excel excel.close(); }

关键点说明:

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

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

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

三、应用场景

  • 报表导出

  • 数据批量导入

  • 自动化测试数据生成

  • 财务数据分析

四、总结

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

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

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