基础

HSSF - 提供读写Microsoft Excel格式档案的功能。(03版本,处理xls)

XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。(07版本,处理xlsx)

HWPF - 提供读写Microsoft Word格式档案的功能。

HSLF - 提供读写Microsoft PowerPoint格式档案的功能。

HDGF - 提供读写Microsoft Visio格式档案的功能。

依赖

根据需要选择不同版本的依赖

        <!--xls(03)-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
 <!--xlsx(07)-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>

案例

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.joda.time.DateTime;
import org.junit.Test; import java.io.FileInputStream;
import java.io.FileOutputStream; public class poi2 { String PATH = "D:\\test\\";
    /**
* 写工作簿
*/
@Test
public void Write03() throws Exception {
//1.创建工作簿
//03版本
Workbook workbook = new HSSFWorkbook();
//07版本
// Workbook workbook = new XSSFWorkbook();

//2.创建 工作表
Sheet sheet = workbook.createSheet("poi技术测试表");
for (int i = 0; i < 100; i++) {
//3.创建行
Row row1 = sheet.createRow(i);
//4.创建单元格
for (int j = 0; j < 10; j++) {
Cell cell11 = row1.createCell(j);
cell11.setCellValue("row"+ i + " 00" + (j+1));
}
}

//生成一张表(IO流)
// 03版本以xls结尾
FileOutputStream fos = new FileOutputStream(PATH + "poi技术测试表.xls");
//07版本就是使用xlsx结尾
// FileOutputStream fos = new FileOutputStream(PATH + "poi技术测试表.xlsx");

//输出
workbook.write(fos);
//关闭流
fos.close();
System.out.println("文件生成完毕");
}

    /**
* 读工作簿
*/
@Test
public void Read03() throws Exception{
//1.获取文件
// 03版本
FileInputStream fis = new FileInputStream(PATH+"poi技术测试表.xls");
//07版本
// FileInputStream fis = new FileInputStream(PATH+"poi技术测试表.xlsx");

//2.创建一个工作簿。使用excel能操作的这边都可以操作!
Workbook workbook = new HSSFWorkbook(fis);
//07版本
// Workbook workbook = new XSSFWorkbook(fis);

//3.获取表
Sheet sheet = workbook.getSheetAt(0);
//当前表中有多少行
int rowCount = sheet.getPhysicalNumberOfRows();
for (int i = 0; i < rowCount; i++) {
//4.获取行
Row row1 = sheet.getRow(i);
//当前行中有多少列
int cellCount = row1.getPhysicalNumberOfCells();
for (int j = 0; j < cellCount; j++) {
//5.获取列
Cell cell1 = row1.getCell(j);
//6.获取行列的值
String stringCellValue = cell1.getStringCellValue();
System.out.println(stringCellValue);
}
}

fis.close();
}
}

最新文章

  1. samba服务
  2. IOS开发基础知识--碎片17
  3. WPScan用法
  4. CSS3入门--线条动画特效实例
  5. 最全的运营推广方案,教你如何从零开始运营APP
  6. Web 前端开发人员和设计师必读精华文章【系列二十六】
  7. bzoj 4010: [HNOI2015]菜肴制作 拓扑排序
  8. 赵雅智_Fragment生命周期
  9. UIAlertViewController+TextField 输入框
  10. HDU P4578 Transformation
  11. 对 const char* const &amp;a 的理解
  12. AutoMapper使用简单总结
  13. JS难点--组件开发
  14. 私有云的难处—为什么需要CloudEngine?
  15. [Abp 源码分析]二、模块系统
  16. 对strom的理解
  17. PAT 1066 图像过滤
  18. CentOS6上实现Tomcat8 service启动,并查看status
  19. Mongo = get size of single document
  20. Nginx访问限制模块limit_conn_zone 和limit_req_zone配置使用

热门文章

  1. ZROI3
  2. Redis--回顾提要
  3. VUE基础之:visible.sync-模态框显示隐藏、elementUI dialog组件报错或者visible属性不生效问题
  4. 模块化编程相关知识-引入- 异步加载JS - CommonJS-AMD-CMD-ES6-
  5. DNS 是如何影响你冲浪速度的?
  6. Unity打包资源,进行后台加载
  7. 洛谷P1365 期望dp
  8. html 引入 js 代码的几种方式
  9. Linux 安装 CentOS7
  10. 调用HttpClient.PostAsync时传token等值