简介

Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office(Excel、WORD、PowerPoint、Visio等)格式档案读和写的功能。

官方主页: http://poi.apache.org/index.html

API文档: http://poi.apache.org/apidocs/index.html

应用场景:

1:从excel中读取数据,写入到数据库(导入);

2:从数据库查询数据,写入到excel文件(导出)

maven坐标

  1. <dependency>
  2. <groupId>org.apache.poi</groupId>
  3. <artifactId>poi</artifactId>
  4. <version>3.14</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.apache.poi</groupId>
  8. <artifactId>poi-ooxml</artifactId>
  9. <version>3.14</version>
  10. </dependency>

入门案例

一、从Excel文件读取数据

1. 方法一

  1. public void readExcel() throws IOException {
  2. //创建工作簿
  3. XSSFWorkbook workbook = new XSSFWorkbook("D:\\hello.xlsx");
  4. //获取工作表,既可以根据工作表的顺序获取,也可以根据工作表的名称获取
  5. XSSFSheet sheet = workbook.getSheetAt(0);
  6. //遍历工作表获得行对象
  7. for (Row row : sheet) {
  8. //遍历行对象获取单元格对象
  9. for (Cell cell : row) {
  10. //获得单元格中的值
  11. String value = cell.getStringCellValue(); //注意:数字类型,需要修改excel单元格的类型,否则报错。
  12. System.out.println(value);// new String(value.getBytes("UTF-8"),"GBK"));
  13. }
  14. }
  15. workbook.close();
  16. }

2. 方法二

  1. public void exportExcel_lastRow() throws IOException {
  2. //创建工作簿
  3. XSSFWorkbook workbook = new XSSFWorkbook("D:\\hello.xlsx");
  4. //获取工作表,既可以根据工作表的顺序获取,也可以根据工作表的名称获取
  5. XSSFSheet sheet = workbook.getSheetAt(0);
  6. //获取当前工作表最后一行的行号,行号从0开始
  7. int lastRowNum = sheet.getLastRowNum();
  8. for(int i=0;i<=lastRowNum;i++){
  9. //根据行号获取行对象
  10. XSSFRow row = sheet.getRow(i);
  11. // 再获取单元格对象
  12. short lastCellNum = row.getLastCellNum();
  13. for(short j=0;j<lastCellNum;j++){
  14. // 获取单元格对象的值
  15. String value = row.getCell(j).getStringCellValue();
  16. System.out.println(value);
  17. }
  18. }
  19. workbook.close();
  20. }

二、向Excel文件写入数据

  1. public void importExcel() throws IOException {
  2. //在内存中创建一个Excel文件
  3. XSSFWorkbook workbook = new XSSFWorkbook();
  4. //创建工作表,指定工作表名称
  5. XSSFSheet sheet = workbook.createSheet("学生表");
  6. //创建行,0表示第一行
  7. XSSFRow row = sheet.createRow(0);
  8. //创建单元格,0表示第一个单元格
  9. row.createCell(0).setCellValue("姓名");
  10. row.createCell(1).setCellValue("学号");
  11. row.createCell(2).setCellValue("性别");
  12. XSSFRow row1 = sheet.createRow(1);
  13. row1.createCell(0).setCellValue("唐");
  14. row1.createCell(1).setCellValue("201511");
  15. row1.createCell(2).setCellValue("女");
  16. XSSFRow row2 = sheet.createRow(2);
  17. row2.createCell(0).setCellValue("李");
  18. row2.createCell(1).setCellValue("201522");
  19. row2.createCell(2).setCellValue("女");
  20. //通过输出流将workbook对象下载到磁盘
  21. OutputStream out = new FileOutputStream("D:/student.xlsx");
  22. workbook.write(out);
  23. out.flush();//刷新
  24. out.close();//关闭
  25. workbook.close();
  26. }

POI完成Excel文件的读和写的更多相关文章

  1. python3 excel文件的读与写

    from openpyxl import load_workbook class RwExcelFile: def read_Excel(self,file_path): ''' 读取excel中所有 ...

  2. Java使用POI操作Excel文件

    1.简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式文件读和写的功能. 2.依赖的jar包 <!-- ex ...

  3. java使用POI操作excel文件,实现批量导出,和导入

    一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...

  4. java使用POI实现excel文件的读取,兼容后缀名xls和xlsx

    需要用的jar包如下: 如果是maven管理的项目,添加依赖如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --&g ...

  5. spring boot 使用 POI 读取Excel文件

    内容简介 本文主要介绍使用POI进行Excel文件的相关操作,涉及读取文件,获取sheet表格,对单元格内容进行读写操作,以及合并单元格的操作. Excel文件目录 Excel模板文件存了resour ...

  6. Jquery的一键上传组件OCUpload及POI解析Excel文件

    第一步:将js文件引入页面 <script type="text/javascript" src="${pageContext.request.contextPat ...

  7. Java Struts2 POI创建Excel文件并实现文件下载

    Java Struts2 POI创建Excel文件并实现文件下载2013-09-04 18:53 6059人阅读 评论(1) 收藏 举报 分类: Java EE(49) Struts(6) 版权声明: ...

  8. JAVA使用POI读取EXCEL文件的简单model

    一.JAVA使用POI读取EXCEL文件的简单model 1.所需要的jar commons-codec-1.10.jarcommons-logging-1.2.jarjunit-4.12.jarlo ...

  9. java 安卓开发之文件的读与写

    java文件的读与写,代码: String file="user.txt"; private void writeFileData(String str1, String str2 ...

随机推荐

  1. kube-proxy的三种工作模式

    kube-proxy模式详解 kubernetes里kube-proxy支持三种模式,在v1.8之前我们使用的是iptables 以及 userspace两种模式,在kubernetes 1.8之后引 ...

  2. opencv安装实录附十几行C++实现的一个人脸识别demo

    前言: 之前写过一篇在nano上使用opencv,nano上默认是安装了opencv的库,除了nano,我们自己电脑上也想使用opencv做一些平时图像处理验证. 本来也是看一些资料安装好的,觉得也没 ...

  3. Https原理与演变

    巨人的肩膀 为了一个HTTPS,浏览器操碎了心··· (qq.com)

  4. IDEA maven项目中引入ojdbc依赖报红色波浪线问题的解决办法

    1.pom.xml配置文件中删除ojdbc的依赖配置后更新maven项目,然后再到本地仓库中将ojdbc这个文件夹删除 2.在网上下载ojdbc14.jar,然后改名为ojdbc14-10.2.0.2 ...

  5. 「BUAA OO Pre」 Pre 2总结回顾概览

    「BUAA OO Pre」 Pre 2总结回顾概览 目录 「BUAA OO Pre」 Pre 2总结回顾概览 Part 0 前言 写作背景 定位 您可以在这里期望获得 您在这里无法期望获得 对读者前置 ...

  6. [ME]不知道第几次学c语言,仍觉得水深莫测

    首先声明这篇东西是个人的碎碎念,没有任何干货. 接下c语言课助教的活儿时还没什么感觉,快要开学了,才感觉到紧张,逼着自己开始看老师发来的课件,说是查错,其实算是自己再好好学一遍,免得到时候面对同学们的 ...

  7. 快来用这款BI分析工具,摆脱数据分析的困扰

    ​互联网.物联网时代,数据激增是正常现象,但这给公司信息部门和数据分析师带来了巨大的工作量.根据以前的分析方法,有必要详细而深入地完成分析报告,即使借助数据分析工具,也要花费大量的时间和人力,更不用说 ...

  8. 深度测评,商业智能BI、报表工具谁更好用?

    在很多人入门数据分析师或者投身大数据行业的时候,必然会听到的两个词就是"报表工具"和"BI商业智能"."BI"一词已被更广泛地知晓,但提起B ...

  9. 企业环境下如何把ubuntu的dhcp改为静态IP

    静态ip不能连接外网 因为老的虚拟机有ubuntu桌面 以及一些磁盘的问题, 想 迁移 自己的虚拟机,连带着把ip也迁移,(公司有些界面是 通过我的虚拟机ip访问的.) 编辑 root@ubuntu: ...

  10. 企业环境下用脚本设置ubuntu防火墙

    ubuntu防火墙设置 初始状态下直接设置即可,尽量不要尝试 重装 iptables 以及ufw,很容易导致 防火墙崩掉,最后可能只能重装系统. 配置脚本 firewall.sh #/bin/bash ...