当前位置: 首页 > 知识库问答 >
问题:

ApachePOI——遍历单个列

那博瀚
2023-03-14

我对POI还是新手,但是我想简单地在Excel工作簿中迭代一列。例如,在下表中,如果我只想要列A的值,即列0中的行0-3,有没有有效的方法来做到这一点?我所看到的所有POI都是基于行的。

____A__________B______
1| some   |   some   |
2| sample |   other  |
3| text   |   stuff  |
4| here   |   here   |
______________________

我有一些大的电子表格,我可以成功地遍历整个表格,但我只是想找出处理这种事情的最佳实践。

提前感谢。

共有2个答案

方恺
2023-03-14

你可以这样做

for(Row r : datatypeSheet) 
            {
                Iterator<Cell> headerIterator = r.cellIterator();
                Cell header = null;
// table header row
                if(r.getRowNum() == 0)
                {
                    //  getting specific column's index

                    while(headerIterator.hasNext())
                    {
                        header = headerIterator.next();
                        if(header.getStringCellValue().equalsIgnoreCase("A"))
                        {
                            AIndex = header.getColumnIndex();
                        }
                        else if(header.getStringCellValue().equalsIgnoreCase("B"))
                        {
                            BIndex = header.getColumnIndex();
                        }
                    }
                }
                else
                {
                    Cell ACells = r.getCell(AIndex);
                    Cell BCells = r.getCell(BIndex);
                    if(ACells != null) 
                    {
                        if(ACells.getCellType() == Cell.CELL_TYPE_STRING) 
                        {
                            AData.add(ACells.getStringCellValue());  //arraylist storing A's data
                        }
                    }
                    if(BCells != null) 
                    {
                        if(BCells.getCellType() == Cell.CELL_TYPE_STRING) 
                        {
                            BData.add(BCells.getStringCellValue());  //arraylist storing B's data
                        }
                    }
                }
            }
梁建德
2023-03-14

不幸的是,由于从Excel继承的对象模型,ApachePOI中没有列概念,因此必须迭代行。

这里有一个可能的副本和一个例子。

 类似资料:
  • 问题内容: 我有两个列表和数字,我想使用相同的指令遍历它们。像这样: 但这感觉多余。我知道我会写,但是要付出一定的时间。 有没有办法做到这一点而又不浪费时间呢? 问题答案: 这可以通过以下方式完成 : 将打印: 根据文档,请执行以下操作: 创建一个迭代器,该迭代器从第一个可迭代对象返回元素,直到耗尽为止,然后继续进行下一个可迭代对象,直到所有可迭代对象都耗尽为止。 如果列表中有列表, 则可用: 产

  • 问题内容: 在Python 3中遍历一个对象时,将单个对象获取为: 如何获取1个长度的对象呢? 以下是可能的,但对读者来说不是很明显,并且很可能表现不佳: 问题答案: 如果您担心此代码的性能,并且a字节不适合您的情况,那么您可能应该重新考虑使用的数据结构,例如使用对象代替。 您可以对对象进行切片以获得1个长度的对象: 有PEP 0467-针对二进制序列的次要API改进 ,提出了以下方法:

  • 本文向大家介绍js遍历map javaScript遍历map的简单实现,包括了js遍历map javaScript遍历map的简单实现的使用技巧和注意事项,需要的朋友参考一下 js遍历map javaScript遍历map的简单实现 这样会把map给遍历掉,显示在浏览器上的控制器里。 以上这篇js遍历map javaScript遍历map的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参

  • 该死的东西一个接一个! 数组(Arrays)是 Puppet 的一个强大特性; 不论何时,你要对列表中的元素执行相同的操作,数组就会帮你的忙。 你可以创建一个数组,将所有的数组元素放在一对方括号中并以逗号间隔,例如: $lunch = [ "franks", "beans", "mustard" ] 操作步骤 在你的配置清单中添加如下代码: $packages = [ "ruby1.8-dev"

  • 问题内容: 有没有那么冗长的替代方案: 我想出了这个: 这节省了一个缩进,但仍然很丑陋。 我希望看起来像这样的伪代码: 有没有类似的东西存在? 问题答案: 我认为您正在寻找ndenumerate。 关于性能。它比列表理解要慢一些。 如果您担心性能,可以通过查看实现来进一步优化,该实现有两件事,转换为数组并循环。如果知道有数组,则可以调用平面迭代器的属性。

  • 主要内容:什么是遍历?,遍历 DOM什么是遍历? jQuery 遍历,意为"移动",用于根据其相对于其他元素的关系来"查找"(或选取)HTML 元素。以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。 下图展示了一个家族树。通过 jQuery 遍历,您能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动(子孙),水平移动(同胞)。这种移动被称为对 DOM 进行遍历。 图示解析: <div> 元素是 <