经过一番搜索发现,java操纵excel文件常用的有jxl和poi两种方式,孰好孰坏看自己需求而定。

其中最主要的区别在于jxl不支持.xlsx,而poi支持.xlsx

这里介绍的使用poi方式(XSSFWorkbook),实际上poi提供了HSSFWorkbook和XSSFWorkbook两个实现类。区别在于HSSFWorkbook是针对.xls文件,XSSFWorkbook是针对.xslx文件。

一、基本概念

先创建一个工作簿,一个工作簿可以有多个工作表,一个工作表可以有多个行,一个行可以有多个单元格

工作簿 ----------->XSSFWorkbook

工作表 ----------->XSSFSheet

行 ----------->XSSFRow

单元格 ----------->XSSFCell

二、student.xlsx的内容

三、导入依赖

org.apache.poi

poi

4.1.0

org.apache.poi

poi-ooxml

4.1.0

四、读取student.xlsx文件代码

import org.apache.poi.xssf.usermodel.*;importjava.io.FileInputStream;importjava.io.IOException;public classTestExcel1 {public static voidmain(String[] args) {try{//创建工作簿

XSSFWorkbook xssfWorkbook = new XSSFWorkbook(new FileInputStream("D:\\test-excel\\student.xlsx"));

System.out.println("xssfWorkbook对象:" +xssfWorkbook);//读取第一个工作表(这里的下标与list一样的,从0开始取,之后的也是如此)

XSSFSheet sheet = xssfWorkbook.getSheetAt(0);

System.out.println("sheet对象:" +sheet);//获取第一行的数据

XSSFRow row = sheet.getRow(0);

System.out.println("row对象:" +row);//获取该行第一个单元格的数据

XSSFCell cell0 = row.getCell(0);

System.out.println("cello对象:" +cell0);

}catch(IOException e) {

e.printStackTrace();

}

}

}

控制台输出结果:可以发现具体到行对象时,就解析成xml文件了

xssfWorkbook对象:

Name: /xl/workbook.xml - Content Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml

sheet对象:

Name: /xl/worksheets/sheet1.xml - Content Type: application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml

row对象:

0

1

2

3

cello对象:姓名

五、整个表的所有数据

以上可以实现了读取某行某单元格的数据,那么接下来就该读取整个表的所有数据了

importorg.apache.poi.xssf.usermodel.XSSFCell;importorg.apache.poi.xssf.usermodel.XSSFRow;importorg.apache.poi.xssf.usermodel.XSSFSheet;importorg.apache.poi.xssf.usermodel.XSSFWorkbook;importjava.io.FileInputStream;importjava.io.IOException;

public classTestExcel2 {public static voidmain(String[] args) {try{//创建工作簿

XSSFWorkbook xssfWorkbook = new XSSFWorkbook(new FileInputStream("D:\\test-excel\\student.xlsx"));

System.out.println("xssfWorkbook对象:" +xssfWorkbook);//读取第一个工作表

XSSFSheet sheet = xssfWorkbook.getSheetAt(0);

System.out.println("sheet对象:" +sheet);//获取最后一行的num,即总行数。此处从0开始计数

int maxRow =sheet.getLastRowNum();

System.out.println("总行数为:" +maxRow);for (int row = 0; row <= maxRow; row++) {//获取最后单元格num,即总单元格数 ***注意:此处从1开始计数***

int maxRol =sheet.getRow(row).getLastCellNum();

System.out.println("--------第" + row + "行的数据如下--------");for (int rol = 0; rol < maxRol; rol++){

System.out.print(sheet.getRow(row).getCell(rol)+ " ");

}

System.out.println();

}

}catch(IOException e) {

e.printStackTrace();

}

}

}

控制台输出:

xssfWorkbook对象:Name: /xl/workbook.xml - Content Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml

sheet对象:Name:/xl/worksheets/sheet1.xml - Content Type: application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml

总行数为:2

--------第0行的数据如下--------姓名 学号 班级 入学日期--------第1行的数据如下--------张三2.0190001E7 三班 01-八月-2019

--------第2行的数据如下--------李四2.0190002E7 三班 01-八月-2019

java xssfworkbook_java - poi(XSSFWorkbook)读取excel(.xlsx)文件相关推荐

  1. java使用poi(XSSFWorkbook)读取excel(.xlsx)文件

    其中最主要的区别在于jxl不支持.xlsx,而poi支持.xlsx 这里介绍的使用poi方式(XSSFWorkbook),实际上poi提供了HSSFWorkbook和XSSFWorkbook两个实现类 ...

  2. java poi XSSFWorkbook读写Excel xlsx文件所需jar包一览

    所需jar包(全部都在poi-5.0.0包及其子包下):  * 1.poi-5.0.0  * 2.poi-ooxml-5.0.0  * 3.poi-ooxml-lite-5.0.0  * 4.lib\ ...

  3. java的poi技术读取Excel[2003-2007,2010]

    这篇blog主要是讲述java中poi读取excel,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx. 读取excel和MySQL相关: ja ...

  4. python读取xlsx文件找不到_在python中打开并读取excel .xlsx文件

    我正在尝试使用python打开一个excel .xlsx文件,但我无法找到办法,我尝试使用pandas但是它想要使用一个名为NumPy的库我试图安装numpy但它仍然可以找不到. 我也尝试过使用xlr ...

  5. java通过POI快速读取excel大量数据的方式

    1.在pom.xml中引入poi相关依赖 <dependency><groupId>cn.afterturn</groupId><artifactId> ...

  6. java不用poi怎么读取excel,java-无法使用Apache POI读取Excel

    您必须包括poi jar文件.它的版本将是4.1.0.如果使用的是Maven pom.xml,请包括以下依赖项. org.apache.poi poi-ooxml 4.1.0 org.apache.p ...

  7. golang 读取excel(xlsx文件) 时间格式解析

    问题起源 最近在写一个读取xlsx文件,并解析其中数据的项目,在所有的数据都就绪之后,却遇到了时间格式获取不正确的问题 时间格式 我查询到的结果 我的代码 func main() {f, err := ...

  8. java利用poi生成/读取excel表格

    1.引入jar包依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</ ...

  9. java读取excel大文件

    在读取excel大文件的时候就不能再使用poi包下面的Workbook类,会造成OOM等问题. 我们常见的excel分为xlsx格式和csv格式.分别实现一下. xlsx格式处理. 需要的pom依赖: ...

  10. Java 后端将上传的 csv 文件转为 Excel xlsx 文件

    一.概述 本地文件是 csv格式,将其转成 xlsx 或者 xls. 二.实现步骤 2.1 获取 csv 文件数据 由于前端的上传文件的数据类型是 MultipartFile,所以就通过获取输入流的方 ...

最新文章

  1. 安装Qt creator时出现 无法定位程序输入点_except1 于动态链接库MSVCR120.dll上
  2. python为什么中文要encoding-python2.x 默认编码问题
  3. [C#1] 10-事件
  4. PaddleOCR——DEMO
  5. android 过滤emoji表情符号,android怎样过滤字符串中的emoji表情
  6. python开发工具管理系统_Python开发桌面软件文档及网址管理工具,强迫症的福音...
  7. ntp的学习笔记001
  8. html 表格是网页中的数据,用 Pandas 读写网页中的 HTML 表格数据
  9. nodejs学习笔记-入门helloworld
  10. mysql error 28,MySQL错误:Got error 28 from storage engine
  11. BZOJ2301[HAOI2011] Problem b
  12. 华为eNSP模拟器中两个路由器IP互联
  13. java佳沃自行车怎么样_JAVA佳沃这个车怎么样最近想入
  14. 萌翻全场!硕士爸爸怀抱1岁萌娃参加毕业典礼:带他提前20年体验毕业
  15. 中国首届微博开发者大会
  16. linux更新网卡驱动版本,Linux中升级网卡驱动
  17. js将页面转成PDF文档
  18. NEON技术粗浅认识
  19. itext html转换为pdf排版错乱,使用iText库将html转换为pdf时不适用hr的Inline CSS
  20. (简单)华为畅享8e DRA-AL00的Usb调试模式在哪里打开的步骤

热门文章

  1. 前端最佳实践(一)——DOM操作
  2. Stacked injection--堆叠注入--堆查询注入
  3. line-height学习与总结
  4. Hibernate4.3注解常见错误
  5. cgroup 原理分析
  6. linux网络子系统分析(二)—— 协议栈分层框架的建立
  7. 编程基础(一)——计算机中的数
  8. 君正X1500基于Minios的crash分析
  9. 《System语言详解》——4. 探
  10. Linux中文件查找方法大全