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

Apache POI对Excel进行读写操作

1、什么是Apache POI

​ Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。一般情况下,POI 都是用于操作 Excel 文件。

image-20240531085649680

Apache POI 的应用场景:

  • 银行网银系统导出交易明细

  • 各种业务系统导出Excel报表

  • 批量导入业务数据

2、简单使用Apache POI

Apache POI既可以将数据写入Excel文件

使用之前需要在项目的pom.xml文件中添加Apache POI的依赖。

<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.16</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.16</version>
</dependency>
2.1、将数据写入Excel文件

实现效果

image-20240531143237595

代码实现

    /*** 写入excel* @throws Exception*/@Testpublic void testWrite() throws Exception {//创建excel文件并写入磁盘//创建一个内存的excel文件对象XSSFWorkbook workbook = new XSSFWorkbook();//创建一个工作表 XSSFSheetXSSFSheet sheet = workbook.createSheet("demo");//创建数据 XSSRow,行号从0开始XSSFRow row = sheet.createRow(0);//根据XSSRow创建单元格并写入数据,单元格从0开始row.createCell(1).setCellValue("姓名");row.createCell(2).setCellValue("爱好");row = sheet.createRow(1);row.createCell(1).setCellValue("小林");row.createCell(2).setCellValue("编程");//创建文件输出流,保存到磁盘FileOutputStream fileInputStream = new FileOutputStream("d:/file/demo.xlsx");//将excel文件给到输出流保存workbook.write(fileInputStream);//关闭流workbook.close();}
3、读取Excel文件中的数据

实现效果

image-20240531143509553

代码实现

    /*** 读取excel*/@Testpublic void testRead() throws Exception {//读取excel//创建文件输入流FileInputStream fileInputStream = new FileInputStream("d:/file/demo.xlsx");//创建内存excel文件XSSFWorkbook xssfWorkbook = new XSSFWorkbook(fileInputStream);//根据XSSFWordbook对象,获取工作表对象XSSFSheet sheet = xssfWorkbook.getSheet("demo");//获取最后一行行号int lastRowNum = sheet.getLastRowNum();//遍历读取for (int i = 0; i <= lastRowNum; i++) {XSSFRow row = sheet.getRow(i);String cellValueOne = row.getCell(1).getStringCellValue();String cellValueTwo = row.getCell(2).getStringCellValue();System.out.println(cellValueOne + " " + cellValueTwo);}//关闭流fileInputStream.close();xssfWorkbook.close();}
http://www.lryc.cn/news/361557.html

相关文章:

  • 网络安全中攻击溯源方法
  • 软件设计不是CRUD(21):在流式数据处理系统中进行业务抽象落地——需求分析
  • 远控免杀篇
  • 基于单片机的超声波倒车雷达设计
  • 如何增加服务器的高并发
  • webservice、WCF、webAPI权限认证
  • Kafka之Producer原理
  • ubuntu20.04部署gitlab流程
  • C/C++动态内存管理(new与delete)
  • 搭建一个基于主流技术Spring Boot 2 + Vue 3 + Ant Design Vue的技术框架的简要步骤
  • 水电站生产指挥调度系统方案
  • 深度学习入门-第3章-神经网络
  • 如何使用AES128位进行视频解密
  • ArkTS是前端语言吗
  • git上新down下来的项目,前端启动报错npm ERR! code 1 npm ERR! path E:\code\vuehr\node_modul
  • oc中的数据结构在都在什么位置
  • 多云世界中的 API 治理
  • 【稳定检索/投稿优惠】2024年环境、资源与区域经济发展国际会议(ERRED 2024)
  • 生成式 AI——ChatGPT、Dall-E、Midjourney 等算法理念探讨
  • C-数据结构-树状存储基本概念
  • 【Linux-Yocto】
  • 一文掌握JavaScript 中类的用法
  • 国密算法:信息安全的守护者
  • 产品经理瞎扯:餐饮门店怎么做好服务实现自救
  • 字节裁员!开启裁员新模式。。
  • 计组雨课堂(5)知识点总结——备考期末复习(xju)
  • springboot基本使用十一(自定义全局异常处理器)
  • SpringSecurity6从入门到实战之SpringSecurity整合自动装配详解(源码级讲解,耐心看完)
  • Java Web是前端吗:深入解析Java Web技术的定位与边界
  • The minCompileSdk (34) specified in adependency‘s AAR metadata