Java - Poi 操作 Excel

关注 “弋凡”(YiFan)微信公众号吧 记录简单笔记 做你的最爱

  • 注意

    • XSSFWorkbook 对象是操作 .xlsx 格式的表格
    • HSSFWorkbook 对象是操作 .xls 格式的表格
    • xls格式 <= 65536 行
    • xlsx格式 > 65536 行
  • 导入pom文件

<!--  .xlsx格式  7版本--><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency>
<!-- 日期格式化工具!--><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.10.1</version></dependency>
  • 写入数据

public static void main(String[] args) throws Exception {String PATH = "E:/IDEA_Project/hzmv/";// 创建一个 ExcelWorkbook workbook = new XSSFWorkbook();// 创建一个工作表Sheet sheet = workbook.createSheet("HZMV~数据源");// 创建一行Row row1 = sheet.createRow(0);// 创建一个单元格  (1,1)Cell cell1 = row1.createCell(0);cell1.setCellValue("链接");//(1,2)Cell cell2 = row1.createCell(1);cell2.setCellValue("格式");// 创建一行Row row2 = sheet.createRow(1);Cell cell3 = row2.createCell(0);String time = new DateTime().toString("yyyy-MM-dd HH:mm:ss");cell3.setCellValue(time);// 生成一张表(io流)FileOutputStream stream = new FileOutputStream(PATH + "hzmv数据源.xlsx");workbook.write(stream);stream.close();System.err.println("hzmv数据源生产完毕~");}
  • 读取数据

public static void main(String[] args) throws Exception {String PATH = "E:/IDEA_Project/hzmv/";// 获取文件流FileInputStream inputStream = new FileInputStream(PATH + "hzmv数据源.xlsx");//  创建一个工作簿 execl能使用的操作 这里都能使用Workbook workbook = new XSSFWorkbook(inputStream);// 拿到第一个表Sheet sheetAt = workbook.getSheetAt(0);System.err.println(sheetAt);// 拿到第行Row row1 = sheetAt.getRow(0);//拿到第一个单元格Cell cell1 = row1.getCell(1);// 读取的时候一定要注意数据类型/**    getStringCellValue  字符串类型*    getNumericCellValue  数字类型* */System.err.println(cell1.getStringCellValue());
}
  • 读取数据及判断数据类型 *

public static void main(String[] args) throws Exception {String PATH = "E:/IDEA_Project/hzmv/";// 获取文件流FileInputStream inputStream = new FileInputStream(PATH + "hzmv数据源.xlsx");//  创建一个工作簿 execl能使用的操作 这里都能使用Workbook workbook = new XSSFWorkbook(inputStream);// 拿到第一个表Sheet sheetAt = workbook.getSheetAt(0);// 获取标题内容Row rowTit = sheetAt.getRow(0);if(rowTit != null ){// 得到所有的列~int cellCount = rowTit.getPhysicalNumberOfCells();// 遍历for (int cellnum = 0; cellnum < cellCount ; cellnum++) {// 得到单元格Cell cell = rowTit.getCell(cellnum);if(cell  != null ){CellType cellType = cell.getCellType();String cellValue = "";switch (cellType){case _NONE:break;case NUMERIC:cellValue = String.valueOf(cell.getNumericCellValue());break;case STRING :cellValue = cell.getStringCellValue();break;case FORMULA:break;case BLANK:break;case BOOLEAN:cellValue = String.valueOf(cell.getBooleanCellValue());break;case ERROR:break;}System.err.print(cellValue+"->"+cellType+"   | ");}}}System.err.println();// 获取表中的内容int rowCount = sheetAt.getPhysicalNumberOfRows();for (int rownum = 1; rownum < rowCount ; rownum++) {Row rowData  = sheetAt.getRow(rownum);if(rowData != null){// 得到所有的列int cellCount = rowData.getPhysicalNumberOfCells();for (int cellnum = 0; cellnum < cellCount ; cellnum++) {// 得到每个单元格Cell cell = rowData.getCell(cellnum);if(cell != null ){// 得到每个单元格的数据的类型~CellType cellType = cell.getCellType();String cellValue = "";switch (cellType){case _NONE:cellValue= "null";break;case NUMERIC:// 日期if(DateUtil.isCellDateFormatted(cell)){Date value = cell.getDateCellValue();cellValue = new DateTime(value).toString("yyyy-MM-dd HH:mm:ss");break;}else {cellValue = String.valueOf(cell.getNumericCellValue());break;}case STRING :cellValue = cell.getStringCellValue();break;case FORMULA:break;case BLANK:cellValue= "null";break;case BOOLEAN:cellValue = String.valueOf(cell.getBooleanCellValue());break;case ERROR:cellValue= "error";break;}System.err.print(cellValue+"->"+cellType+"   | ");}}System.err.println();}}inputStream.close();
}
  • 运行效果图

  • 数据内容

快来关注“弋凡”微信公众号吧

Java - Poi 操作 Excel相关推荐

  1. Java poi操作Excel单元格样式

    Java poi设置Excel单元格格式设置 XSSFWorkbook xwb = new XSSFWorkbook();或者 XSSFWorkbook xwb = new XSSFWorkbook( ...

  2. java poi操作excel 添加 锁定单元格保护

    Excel的book保护是很常用的,主要是不想让别人修改Excel的时候用.这样能够避免恶意随便修改数据,提高数据的可信度. 下面介绍JAVA POI来实现设置book保护: 使用HSSFSheet类 ...

  3. java poi 操作Excel 删除行内容和直接删除行

    一般情况下,删除行时会面临两种情况:删除行内容但保留行位置.整行删除(删除后下方单元格上移).对应的删除方法分别是: void removeRow(Row row)//Remove a row fro ...

  4. java poi 操作 excel 读取本地Excel / 保存excel到本地 / url下载excel

    pom.xml 配置poi版本 <dependency><groupId>org.apache.poi</groupId><artifactId>poi ...

  5. java POI操作Excel代码收藏 (包括标题垂直水平居中)

    [size=large][color=red][b]1.HSSF 2003版Excel导出[/b][/color][/size] package com.hwt.glmf.common; import ...

  6. Java POI操作Excel记录

    1.在excel中新增行和单元格 首先在excel中指定行之后新增单元格,如果后面还有行数据的话,则需要先执行sheet.shiftRows()操作,将后面的数据往下移动需要新增行的行数.然后再执行s ...

  7. 利用java poi对excel表的读写操作

    2019独角兽企业重金招聘Python工程师标准>>> 利用java poi对excel表的读写操作 POI简介: Apache POI是一种流行的API,它允许程序员使用Java程 ...

  8. java apache.poi_Java利用apache的POI操作Excel

    最近在写一些报表的活,顺便总结下...第一篇博文,希望多多指教. 项目中经常会设计到一些数据的报表问题,目前java中操作Excel的插件也有很多 ,我说下用apache的POI操作Excel的方法. ...

  9. execle java,Java使用POI操作Excel

    Java使用POI操作Excel 1. POI操作Excel 1.1. 依赖 org.apache.poi poi 4.1.0 org.apache.poi poi-ooxml 4.1.0 org.a ...

最新文章

  1. Windows Phone 7 Tip (4) -- User Agent
  2. 任务调度利器:Celery
  3. 边缘使用 K8s 门槛太高?OpenYurt 这个功能帮你快速搭建集群!
  4. 机器学习实战3--豆瓣读书简介
  5. 【科普】让人头秃的理论:什么是“奥卡姆剃刀”原理?
  6. LongAdder分段锁机制
  7. Docker版本(三)
  8. 《吃土》读书笔记-笔记初稿
  9. spring boot源码下载地址
  10. python包管理机制_Go 1.5之前的多种包管理机制简介(
  11. 训练日志 2019.1.2
  12. 如何在GPT分区上安装WIN7
  13. python数据包分析_python | 数据分析(一)- Numpy数据包
  14. 降采样_嫦娥五号探测器圆满完成我国首次月球采样返回任务
  15. Remoting服务集成到IIS的简单总结
  16. windows server 2003产生的 Minidmp蓝屏文件分析求助
  17. python not enough arguments_python - not enough arguments for format string
  18. 计算机组成图解结构图,图解计算机结构与体系分类!!
  19. 2.1 数字图像处理——图像基础
  20. 物联网控制的智能LED灯带(1):WS2812灯带控制(WS2812/2811,ESP32,NODE-RED)

热门文章

  1. 万亿级日志与行为数据存储查询技术剖析
  2. 分布式服务化系统一致性的“最佳实干”--转
  3. 深入理解Java内存模型--转载
  4. Jodd-vtor验证框架
  5. spring mvc DispatcherServlet详解之拾忆工具类utils
  6. 深入redis内部---网络编程
  7. 【大数据-Hadoop】Spark
  8. 移动应用开发者正饱受折磨
  9. Android华容道之一步一步实现-序言
  10. Apache ZooKeeper - Leader 选举 如何保证分布式数据的一致性