Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。该篇是介绍poi基本的读写数据功能。

本文操作的是xls格式的Excel,使用的jar包是:

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.16</version>
</dependency>

如果操作的是xlsx格式的Excel,引入该jar包:

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>xxx</version>
</dependency>
  • 数据写入Excel
package com.originexcel;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap; /**
* Created by dell on 2017/9/29.
*/
public class CreateSheet { public static void main(String[] args) throws IOException { /**
* 思路:
* 1、创建工作簿
* 2、创建sheet页(可设置sheet页名)
* 3、创建行
* 4、取数据:先取集合,再取对象,再取属性,并将数据写入到工作簿
* 5、创建文件,将工作簿写入文件
*/
XSSFWorkbook workbook = new XSSFWorkbook(); // 创建工作簿
XSSFSheet sheet = workbook.createSheet("mysheet");// sheet页名称
XSSFRow row ; // 行
Map<String,Object[]> object = new TreeMap<>(); object.put("1",new Object[]{"name","age","sex"});
object.put("2",new Object[]{"admin01","15","女"});
object.put("3",new Object[]{"admin02","15","女"});
object.put("4",new Object[]{"admin03","15","女"});
object.put("5",new Object[]{"admin04","15","女"});
object.put("6",new Object[]{"admin05","15","女"}); Set<String> keys = object.keySet();
int rowid = 0;
for (String key:keys) {
row = sheet.createRow(rowid++);
Object[] objects = object.get(key);
int cellid = 0;
for (Object obj : objects) {
Cell cell = row.createCell(cellid++); // 单元格
cell.setCellValue((String)obj);
} } FileOutputStream outputStream = new FileOutputStream(new File("test.xls"));
workbook.write(outputStream);
outputStream.close();
System.out.println("test.xlsx written successfully"); }
}

输出的效果是:

  • 读取excel数据

package com.originexcel; import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator; /**
* 读取excel的数据
*
* Created by dell on 2017/9/29.
*/
public class ReadWorkBook {
static XSSFRow row;
public static void main(String[] args) throws IOException {
FileInputStream inputStream = new FileInputStream("test.xls"); XSSFWorkbook workbook = new XSSFWorkbook(inputStream); XSSFSheet sheet = workbook.getSheetAt(0); Iterator<Row> rows = sheet.iterator(); while (rows.hasNext()){
row = (XSSFRow) rows.next();
Iterator <Cell> cellIterator = row.cellIterator(); Cell cell = cellIterator.next();
switch (cell.getCellType()){
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue() + " \t\t " );
break;
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue() + " \t\t " );
break;
} System.out.println();
}
inputStream.close();
} }

本文只是作为poi一个入门的demo(也是博主的处女作)。欢迎大家多多指教。

最新文章

  1. JavaScript获取时间戳、日期格式化
  2. CSS3制作动画的三个属性
  3. MyEclipse、Eclipse复制web项目
  4. hdu Caocao&#39;s Bridges(无向图边双连通分量,找出权值最小的桥)
  5. 如何在Ubuntu上配置scala教程
  6. Transform a BST to greater sum tree
  7. Jquery-EasyUI学习~
  8. html DOM 变化 通知,很好很强大
  9. android中Invalidate和postInvalidate的区别
  10. C++的类为什么要用指针
  11. java--多线程之Runnable
  12. Zabbix通过IPMI监控HPE服务器硬件
  13. 浅谈USB驱动架构 转载
  14. 最值反演 min-max容斥
  15. QTP 自动化测试桌面程序--笔记(关闭 启动程序脚本) 、安装
  16. LintCode: Single Number II
  17. Postgresql学习笔记
  18. Git操作指令
  19. Adaboost 算法的原理与推导——转载及修改完善
  20. Idea中Git的使用和两种类型的冲突解决

热门文章

  1. openfire:Openfire源代码在eclipse中的运行配置 + 与spark结合进行二次开发
  2. Android 跳转系统选择本地视频的功能
  3. Log Reservation
  4. 原型模式和基于原型继承的js对象系统
  5. HTTP协议报文、工作原理
  6. 第4章 同步控制 Synchronization ----Interlocked Variables
  7. pdf点击超链接后返回:alt+ 向左 /向右
  8. Spring 5:以函数式方式注册 Bean
  9. GCD hdu1695容斥原理
  10. 宝藏(树形DP)