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

Java Apache POI-创建一个迭代器来查找日期

左丘成天
2023-03-14

我正试图在Excel文件中找到特定日期的单元格引用。Excel的设置使“日期”标题在A1中,日期包含在B1、C1等的同一行中。

我试图创建一个迭代器来遍历这些日期,并将它们与输入日期进行比较。为了简洁起见,我省略了下面的一些代码。

   public static void main(String[] args) throws IOException, ParseException {
    SimpleDateFormat formatter ; 
       formatter = new SimpleDateFormat("MM/dd/yyyy");
       Date date = formatter.parse(args[0]);

    // ............

    // iterator to find date
    int dateRef = 0; //logs column of date
    Date tempDate = null;
    // while loop to check the date contents of each cell
    while (dateRef < 1000) {    // random number inserted
        dateRef++;
        tempDate = cell.getDateCellValue();
        if (date == tempDate) {
            break; //beaks if contents are equal
        }
        cell = results.getRow(0).getCell(dateRef);  // else continue and iterate one cell
        }
}

当我运行它时,迭代器一直运行到第1000列。我用打印报表查过了。即使单元格在正确的日期着陆,它也不会将输入日期和单元格日期值识别为相同,因此不会中断。

我知道这可能不是最有效率的做事方式,所以如果你有更多的建议,让我知道。谢谢你!

共有1个答案

卓正业
2023-03-14

在这种情况下不应使用==运算符。在您的情况下,我会尝试使用equalscompareto来查找正确的日期。

参见问题:在Java中==vs equals()之间有什么区别?

 类似资料:
  • 问题内容: 如何在python中创建一个迭代函数(或迭代器对象)? 问题答案: python中的迭代器对象符合迭代器协议,这基本上意味着它们提供了两种方法: 和 。 在返回迭代器对象,并在循环开始时隐式调用。 该方法返回下一个值,并在每次循环增量时隐式调用。当没有更多值要返回时,此方法将引发异常,该异常由循环构造以停止迭代的方式隐式捕获。 这是一个简单的计数器示例: 这将打印: 如上一个答案所述,

  • 是否可以从迭代器创建一个流,其中对象的序列与通过反复调用迭代器的next()方法生成的序列相同?我所考虑的具体情况涉及到Treeset.desceningIterator()返回的迭代器的使用,但是我可以想象在其他情况下,迭代器是可用的,而不是它所引用的集合。 例如,对于,我们可以编写并按照该集合的排序顺序获取该集合中的对象流,但是如果我们希望它们按照不同的顺序,比如通过使用获得的顺序呢?我想象的

  • 我想在HashMap中搜索重复项。目前这是我的HashMap:

  • 我有一个HashMap,一个键作为某个类的对象,一个值作为另一个HashMap,它的键是一个字符串,值是一个双倍: 我需要一个循环,将键(对象)和值(HashMaps)添加到这个HashMap,但我不能在循环中创建一个新的HashMap变量作为它的值。本质上,每个MyClass对象都必须具有具有相应Double的Strings。 这可能吗?这有什么意义吗??

  • 问题内容: 如何查询SQL Server的SQL Server 2005表列的创建日期? 我尝试获取该信息,但是创建日期未包含在此存储过程中。 如何才能做到这一点? 问题答案: 有一个名为sys.Columns的系统表,您可以从中获取列信息。如果要查看特定表的列,可以执行以下操作: 或者,您可以获取如下表信息: 但是我找不到有关列创建日期的任何信息。 更新: 这可能会有所帮助。

  • 问题内容: 是否可以从迭代器创建一个Stream,其中对象的序列与通过重复调用迭代器的next()方法生成的对象的序列相同?我正在考虑的特定情况涉及TreeSet.descendingIterator()返回的迭代器的使用,但是我可以想象在其他情况下可以使用迭代器而不是它引用的集合。 例如,对于a,我们可以按照集合的排序顺序来编写并获取该集合中的对象流,但是如果我们希望它们以不同的顺序(例如,使用