博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Iterator遍历Sheet(POI)验证及解释结果有序性
阅读量:7090 次
发布时间:2019-06-28

本文共 2365 字,大约阅读时间需要 7 分钟。

 

test.xlsx:

 

Code:

package poi;import static org.junit.Assert.*;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.List;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.Parameterized;import org.junit.runners.Parameterized.Parameters;@RunWith(value=Parameterized.class)public class TestIterator {    public TestIterator(Integer times) {    }        @Parameters    public static Collection
init(){ int times=200; Integer[][] parameters=new Integer[times][1]; for (int i = 0; i < times; i++) { parameters[i][0]=i; } return Arrays.asList(parameters); } @Test public void testItertor() throws IOException{ List
expected=new ArrayList
();//rowNums.need to change according to demand for (int i = 0; i <=1 ; i++) { expected.add(i); } expected.add(3); expected.add(4); expected.add(6); List
actual=new ArrayList
(); String filePath="/poi/test.xlsx"; InputStream is=this.getClass().getResourceAsStream(filePath); Workbook wb=new XSSFWorkbook(is); Sheet sheet=wb.getSheetAt(0); for (Row row : sheet) { actual.add(row.getRowNum()); } assertEquals(expected, actual); }}

结果:通过验证。

源码解析:

org.apache.poi.xssf.usermodel.XSSFSheet
XSSFRow的存放数据结构:

private TreeMap
_rows;
/**     * @return an iterator of the PHYSICAL rows.  Meaning the 3rd element may not     * be the third row if say for instance the second row is undefined.     * Call getRowNum() on each row if you care which one it is.     */    @SuppressWarnings("unchecked")    public Iterator
rowIterator() { return (Iterator
)(Iterator
) _rows.values().iterator(); } /** * Alias for {
@link #rowIterator()} to * allow foreach loops */ public Iterator
iterator() { return rowIterator(); }

 

转载地址:http://wpbql.baihongyu.com/

你可能感兴趣的文章
this的五种指法
查看>>
POJ 1511 Invitation Cards(逆向思维 SPFA)
查看>>
Android应用程序支持安装到SD卡
查看>>
hibernate.properties
查看>>
34hibernate_fetch_5_set_subselect
查看>>
七,移植linux-3.19内核
查看>>
splay(1区间翻转区间最值与区间修改)
查看>>
通过 openURL 方法跳转至设置 - iOS
查看>>
自定义listVew +simpleAdapter
查看>>
从win7到mac os再到win10,体验总结
查看>>
函数名的使⽤以及第⼀类对象 闭包 迭代器
查看>>
leetcode986
查看>>
leetcode894
查看>>
JS OffsetParent属性
查看>>
001——vue.js初始安装:
查看>>
《Linux程序设计》笔记(一)入门
查看>>
DesUtils工具类
查看>>
mysql中模糊查询的四种用法介绍
查看>>
使用jetty-maven-plugin插件进行测试
查看>>
swift 实践- 11 -- UISlider
查看>>