简介

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坐标

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

入门案例

一、从Excel文件读取数据

1. 方法一

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

2. 方法二

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

二、向Excel文件写入数据

public void importExcel() throws IOException {
//在内存中创建一个Excel文件
XSSFWorkbook workbook = new XSSFWorkbook();
//创建工作表,指定工作表名称
XSSFSheet sheet = workbook.createSheet("学生表"); //创建行,0表示第一行
XSSFRow row = sheet.createRow(0);
//创建单元格,0表示第一个单元格
row.createCell(0).setCellValue("姓名");
row.createCell(1).setCellValue("学号");
row.createCell(2).setCellValue("性别"); XSSFRow row1 = sheet.createRow(1);
row1.createCell(0).setCellValue("唐");
row1.createCell(1).setCellValue("201511");
row1.createCell(2).setCellValue("女"); XSSFRow row2 = sheet.createRow(2);
row2.createCell(0).setCellValue("李");
row2.createCell(1).setCellValue("201522");
row2.createCell(2).setCellValue("女"); //通过输出流将workbook对象下载到磁盘
OutputStream out = new FileOutputStream("D:/student.xlsx"); workbook.write(out);
out.flush();//刷新
out.close();//关闭
workbook.close();
}

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. 面向对象—多态、鸭子类型(Day21)

    编程原则java具有自己的编程原则和设计模式,不能多继承.python的编程原则:1.开放封闭原则:开放是对扩展是开放的,封闭是对修改是封闭的(已经写完的代码程序是不能修改的).2.依赖倒置原则:高层 ...

  2. Java并发基础之AbstractQueuedSynchronizer(AQS)

    AbstractQueuedSynchronizer同步器是实现JUC核心基础组件,因为 定义了一套多线程访问共享资源的同步器框架.前面几篇文章中JUC同步工具中都利用AQS构建自身的阻塞类.AQS解 ...

  3. DevOpts 前端开发和 Spug

    DevOpts 前端开发和 Spug 朋友新工作是进行 DevOpts 前端开发,涉及 Spug. DevOps 是什么 DevOps 是一种思想.用于促进开发和运维之间的沟通.协作或整合. Tip: ...

  4. ClickHouse在大数据领域应用实践

    一.序言 面向大数据量查询数据库,优点是在较大数据量(千万级)的前提下具有较好的查询性能. 1.应用场景 ClickHouse应用于OLAP(在线分析处理)领域,具体来说满足如下特点使用此技术比较合适 ...

  5. 基于nodejs的阿里云DDNS服务,支持多网卡绑定

    前段几天写的,自用. 想着也许有和我一样需求的同学,所以开源发出来了. 提供阿里云的DDNS设置,支持多网卡多域名绑定. 特性 支持阿里云DDNS设置 支持针对多个线路多个网卡单独设置域名 支持IPv ...

  6. Meterpreter后渗透阶段之远程桌面开启

    实验目的 学习利用Meterpreter后渗透阶段模块来开启靶机远程桌面 实验原理 利用Meterpreter生成木马,利用木马控制靶机进行远程桌面的攻击 实验内容 利用Meterpreter后渗透阶 ...

  7. 报表工具Smartbi有什么过人之处?为什么这两年备受推崇?

    Smartbi报表工具是思迈特软件公司的产品之一,完成从"类Excel"到"真Excel"的跨越,是企业级报表的最佳解决方案,主要有以下特点: 完全基于Exce ...

  8. 激活visio pro 2019

    内容来源:http://www.yishimei.cn/catalog.asp?page=2 1.必须彻底关闭windows defender 防火墙 :光笔防火墙的教程:https://www.cn ...

  9. redis面试1-33

    目录 1.Redis你比较熟吧,说说它机制为什么快? 2.redis是单线程吗? 3.为什么redis需要把所有数据放到内存中? 4.Redis的回收策略有哪些? 5.MySQL里有2000w数据, ...

  10. 【实测】Python 和 C++ 下字符串查找的速度对比

    完整格式链接:https://blog.imakiseki.cf/2022/03/07/techdev/python-cpp-string-find-perf-test/ 背景 最近在备战一场算法竞赛 ...