本文即将对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. Linux 服务器配置、运行、不用敲命令(新手必备!) - 宝塔全攻略建站一条龙

    Linux 服务器配置.运行.不用敲命令 WordPress 建站攻略 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整 ...

  2. 识别假tf卡工具

    h2testwhttps://www.heise.de/download/product/h2testw-50539使用HaraldBögeholz的免费测试工具H2testw,可以检查存储介质(如硬 ...

  3. EasyUI datagrid combox onchange 五

    $("#sTwo").combobox({ onChange: function (n,o) { n改变后,o改变前 }

  4. 《DSP using MATLAB》Problem 5.4

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  5. Python 3 运行 shell 命令

    #python 3.5 , win10 引入包 #os.chdir('path') import osimport subprocess #https://docs.python.org/3.5/li ...

  6. linux服务器进程信息查看命令

    #lsof 列出当前系统打开文件,常与-i选项使用,用于查看某个端口被哪个程序占用 [root@bogon ~]# lsof -i:80 COMMAND PID USER FD TYPE DEVICE ...

  7. Java打印水仙花数

    public class Test2 { public static void main(String[] args) { //水仙花 数 指的是一个三位数(100-999) //三位数本身= 百位数 ...

  8. How to scale Complex Event Processing (CEP)/ Streaming SQL Systems?

    转自:https://iwringer.wordpress.com/2012/05/18/how-to-scale-complex-event-processing-cep-systems/ What ...

  9. 关于导出csv格式文件的身份证号、日期的处理

    EXCEL系统的单元格,默认格式是常规或数值格式下,数字超过10位即以科学计数法显示,对15位以后的数字用0填充. 在导入到Excel.导出csv文件时,对于身份证号自动变成科学计数法的地方,就要做一 ...

  10. 目前支持WebGL的浏览器有哪些?

    Google Chrome 9+ Mozilla Firefox 4+ Safari 5.1+(仅限于Mac OS X操作系统,不包括Windows) Opera 12 alpha及以上版本 IE9+ ...