本文即将对POI方式导入excel文件最核心的步骤予以说明,为的是简单,也是为了阐明文件导入的原理.

文件导入有一个很明显的线索:

1.首先是我们知道硬盘中的文件,即:文件对象File file

2.然后通过文件对象file  ,我们可以获取它的路径String filePath = file.getAbsolutePath()

3.根据filePath,我们可以创建一条文件输入流:FileInputStream fis = new FileInputStream(filePath),这条流就像一条连接硬盘到内存的单向河流,把excel文件流到了内存中,但是得有东西接收才行呀,别慌,有Workbook容器

4.Workbook book = new XSSFWorkbook(fis)(注意,如果是xls的excel文件,要用HSSFWorkbook去接收,所谓什么岁数的人穿什么样式的衣裳)

5.得到了workbook,就相当于得到了整个excel文件,但是它还是冰冻的,需要我们进一步给它化冻,才能看清其真面目,接下来就有意思了,一层层剥开

6.首先是通过workbook获取其中的一个工作簿sheet,workbook.getSheetAt(0)//0表示第一个

7.获取了工作簿,里面还有行,列,那么我们是先获取行,还是先获取列呢,规定是这样的顺序:工作簿--->行Row--->列cell,注意这里的列不是column,而是cell,表示比row低一级别

看这里:

  通过工作簿获取行:Row row = sheet.getRow(0);//这是获取第一行

  通过行获取单元格:row.getCell(0);//这是获取该行的第一个单元格

8.如果我们像获取其他信息,比如行数,列数,格式怎么办?也有妙招:

  获取行数,是通过sheet.getLastRowNum()

  获取列数,是通过获取任意行,然后获取该行的单元格数来间接得到的,如row.getPhysicalNumberOfCells()

9.有没有发现:从硬盘的文件到内存中操作单元格,它们之间好像有一种严格的层级关系,会了这种关系,再也不会忘记文件导入怎么搞了:

  文件对象/文件路径/输入流/工作表/工作簿/行/单元格

你记住了吗?


注:上面只是简单的表达文件导入的原理,还有一些细节,等待大家挖掘,比如处理异常,对xls和xlsx的不同处理,对单元格String和Number类型格式的处理,大家若遇到问题可百度,因为都是小问题

对poi-Excel导入的浅层理解的更多相关文章

  1. struts2.1笔记01:MVC框架思想浅层理解

      1. Struts 1是全世界第一个发布的MVC框架: 它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,S ...

  2. 对poi-excel导出的浅层理解

    上一篇对excel导入做了浅层的解释,本文将对导出再做浅层解释. 仍然是相同的套路,只不过是反过来而已. 反过来方向理论上本来是这样的:cell-->row-->sheet-->wo ...

  3. poi excel导入导出

    pom <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artif ...

  4. Java POI Excel 导入导出

    这个东西很容易懂,不是特别难,难就难在一些复杂的计算和Excel格式的调整上. 近期写了一个小列子,放上来便于以后使用. POI.jar下载地址:http://mirror.bit.edu.cn/ap ...

  5. poi excel导入

    poi.jar包 import java.io.File;import java.io.FileInputStream;import java.io.IOException; import org.a ...

  6. POI Excel 导入导出重点

    HSSF是指2007年以前的,XSSF是指2007年版本以上的 这个还是比较好用的,这些总结来自Apache的官方向导的点点滴滴 详细的请参考http://poi.apache.org/spreads ...

  7. poi excel导入 数字自动加小数点

    问题:导入excel表,若表格中为整数数字,不管单元格设置成数字格式还是文本格式,导入时都会出现小数点和0. 我遇到的问题是:一个名称,做测试数据的时候做了纯整形数字,发现了这个问题. 解决办法:在代 ...

  8. poi excel导入纯数字单元格显示科学计数法的处理

    POI读取Excel文件时,对纯数字单元格的处理   用POI读取Excel文件的时候,可能会遇到这样的问题:Excel文件中某一单元格中的数据为数字,例如12345678910123. 正常读取的话 ...

  9. java poi excel导入模板设置下拉框

    import org.apache.poi.hssf.usermodel.DVConstraint; import org.apache.poi.hssf.usermodel.HSSFCell; im ...

随机推荐

  1. JAXB性能优化

    前言: 之前在查阅jaxb相关资料的同时, 也看到了一些关于性能优化的点. 主要集中于对象和xml互转的过程中, 确实有些实实在在需要注意的点. 这边浅谈jaxb性能优化的一个思路. 案列: 先来构造 ...

  2. 编译Spring源码

    近期,学习Spring源码.会陆续记录这次学习历程. Spring源码下载,环境中需要准备好的东西,git,gradle,eclipse (需要自己安装好) 1.Git clone Spring源码: ...

  3. powerdesigner基本使用

    parent sonPK主键 FK外键 n ------> 1 alter table muniubox.cpa_accounting_book add constraint FK_Refere ...

  4. C# 用反射动态绑定事件

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  5. itcast-spring

    黑马2014  spring后期 ssh整合后期  讲解不清楚 源码讲解太多   spring重新开始  itcast2016版本 介绍 Spring搭建 约束引入注意事项 导入至eclipse:wi ...

  6. linux环境下配置mysql双主复制

    简单来说,双主复制就是让两台mysql服务器中的数据保持同步,可以用来实现灾备和负载均衡 主机1 IP:192.168.200.128 主机2 IP:192.168.200.131 两台主机系统均为c ...

  7. loging日志文件

    此文件要放到django 项目中的setting文件夹,可以对文件进行一些配置和修改 # 定义一下log文件存放的位置 BASE_LOG_DIR = os.path.join(BASE_DIR, &q ...

  8. openresty 集成 sentry 异常系统

    sentry 是一个方便的错误异常追踪系统,同时社区也提供了openresty 的lua 包,使用docker-compose 进行测试 备注: sentry 部分的配置来自官方文档 环境准备 doc ...

  9. gearman openresty 集成试用

    很简单使用了一个openresty 的lua 模块 环境准备 docker-compose 文件 详细配置可以参考 https://github.com/rongfengliang/gearmango ...

  10. 解决GitHub下载速度比较慢

    第一步,打开本机上的Hosts文件 首先,什么是Hosts文件? 在互联网协议中,host表示能够同其他机器互相访问的本地计算机.一台本地机有唯一标志代码,同网络掩码一起组成IP地址,如果通过点到点协 ...