Poi的理解

我们看到的Excel表格可能是A1有值,A3有值,B4有值,其他格为空,但Excel的内存存储机制可能是,将有值的单元格赋予主键并存入数据库,为空的不分配内存,即不存储

先分配一份内存,用于存储列指针,这就是行的内存

应该是操作后才会赋予主键,并分配内存

其实Excel的内存分配很简单,就是一个二维数组,当
XSSFWorkbook xwb = new XSSFWorkbook(in);

XSSFSheet sheet = xwb.getSheet(sheetName);

用sheet.getRow(1)得到一个数组,数组存储的都是指针,或准确的说,得到的数组里面存储一堆一维指针

而XSSFCell cell = row.getCell(1);则得到指定单元格的内存,(变量就是有名称的内存),如果此单元格之前没有数据,即没被分配内存,则若对此单元格做操作,则会报空指针异常

也许也可以将Excel的存储模式理解为 以链表形式存储,行内存指向链表头,具体的单元格则是链表里面具体的元素

xwb.getRow(2);//得到链表头内存,没有该行则对其操作时报空指针异常

xwb.getCell(1);//得到具体单元格内存,没有该单元格则对其操作时报空指针异常

sheet.createRow(2);//为该行分配内存,或者说分配一个存储链表头的内存,该行如果原来有数据,则被覆盖,原来数据消失

row.createCell(1);//为该单元格分配新内存,如果原来就有内存,则被覆盖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值