对poi-Excel导入的浅层理解
本文即将对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导入的浅层理解的更多相关文章
- struts2.1笔记01:MVC框架思想浅层理解
1. Struts 1是全世界第一个发布的MVC框架: 它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,S ...
- 对poi-excel导出的浅层理解
上一篇对excel导入做了浅层的解释,本文将对导出再做浅层解释. 仍然是相同的套路,只不过是反过来而已. 反过来方向理论上本来是这样的:cell-->row-->sheet-->wo ...
- poi excel导入导出
pom <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artif ...
- Java POI Excel 导入导出
这个东西很容易懂,不是特别难,难就难在一些复杂的计算和Excel格式的调整上. 近期写了一个小列子,放上来便于以后使用. POI.jar下载地址:http://mirror.bit.edu.cn/ap ...
- poi excel导入
poi.jar包 import java.io.File;import java.io.FileInputStream;import java.io.IOException; import org.a ...
- POI Excel 导入导出重点
HSSF是指2007年以前的,XSSF是指2007年版本以上的 这个还是比较好用的,这些总结来自Apache的官方向导的点点滴滴 详细的请参考http://poi.apache.org/spreads ...
- poi excel导入 数字自动加小数点
问题:导入excel表,若表格中为整数数字,不管单元格设置成数字格式还是文本格式,导入时都会出现小数点和0. 我遇到的问题是:一个名称,做测试数据的时候做了纯整形数字,发现了这个问题. 解决办法:在代 ...
- poi excel导入纯数字单元格显示科学计数法的处理
POI读取Excel文件时,对纯数字单元格的处理 用POI读取Excel文件的时候,可能会遇到这样的问题:Excel文件中某一单元格中的数据为数字,例如12345678910123. 正常读取的话 ...
- java poi excel导入模板设置下拉框
import org.apache.poi.hssf.usermodel.DVConstraint; import org.apache.poi.hssf.usermodel.HSSFCell; im ...
随机推荐
- Linux 服务器配置、运行、不用敲命令(新手必备!) - 宝塔全攻略建站一条龙
Linux 服务器配置.运行.不用敲命令 WordPress 建站攻略 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整 ...
- 识别假tf卡工具
h2testwhttps://www.heise.de/download/product/h2testw-50539使用HaraldBögeholz的免费测试工具H2testw,可以检查存储介质(如硬 ...
- EasyUI datagrid combox onchange 五
$("#sTwo").combobox({ onChange: function (n,o) { n改变后,o改变前 }
- 《DSP using MATLAB》Problem 5.4
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
- Python 3 运行 shell 命令
#python 3.5 , win10 引入包 #os.chdir('path') import osimport subprocess #https://docs.python.org/3.5/li ...
- linux服务器进程信息查看命令
#lsof 列出当前系统打开文件,常与-i选项使用,用于查看某个端口被哪个程序占用 [root@bogon ~]# lsof -i:80 COMMAND PID USER FD TYPE DEVICE ...
- Java打印水仙花数
public class Test2 { public static void main(String[] args) { //水仙花 数 指的是一个三位数(100-999) //三位数本身= 百位数 ...
- 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 ...
- 关于导出csv格式文件的身份证号、日期的处理
EXCEL系统的单元格,默认格式是常规或数值格式下,数字超过10位即以科学计数法显示,对15位以后的数字用0填充. 在导入到Excel.导出csv文件时,对于身份证号自动变成科学计数法的地方,就要做一 ...
- 目前支持WebGL的浏览器有哪些?
Google Chrome 9+ Mozilla Firefox 4+ Safari 5.1+(仅限于Mac OS X操作系统,不包括Windows) Opera 12 alpha及以上版本 IE9+ ...