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

Selenium excel读写查找行号

蒋原
2023-03-14

在我的程序中,我想在excel工作表中找到与我作为参数传递的字符串匹配的行号。它对第一行和第二行都很好,但问题是接下来的行。我查找行号的代码如下:

    public int findrownum(String sName, String value, int cNum) throws Exception{
        File excel = new File(filepath);
        FileInputStream fis = new FileInputStream(excel);
        XSSFWorkbook wb = new XSSFWorkbook(fis);
        XSSFSheet ws = wb.getSheet(sName);
        boolean check = true;
        int i=0;
        while (check){
            XSSFRow rowH = ws.getRow(i);
            XSSFCell cell = rowH.getCell(cNum);
            String cellvalue = cellToString(cell);
            if (cellvalue.equals(value)){
                check = false;
            }
            else {
                i = i+1;
            }
        }       

        return i;
    }

}

我想从excel中读取第三行,即具有名称注册的字符串

请让我知道代码中需要做哪些更改。

谢谢

我在JUNIT中使用了@Eric提到的类似逻辑,现在我可以找到行号了,但现在它给出错误,而我尝试使用这个行号读取数据。我读取数据的代码如下。请告诉我需要做哪些更改公共字符串dataread(String sName,int rNum,String cName)抛出异常{File excel=new File(filepath);FileInputStream fis=new FileInputStream(excel);XSSFWorkbook wb=new XSSFWorkbook(fis);XSSFSheet ws=wb.getSheet(sName);XSSFRow rowH=ws.getRow(rNum-1);int totalRows=ws.getLastRowNum();

    int i =0;
    for(i=0;i<=totalRows;i++)

    {
        XSSFCell cell = rowH.getCell(i);
        String value = cellToString(cell);
        if (value.equals(cName)){
             System.out.println(i);
             break;
        }

    }
    XSSFRow row = ws.getRow(rNum);
    XSSFCell cell = row.getCell(i);
    String value = cellToString(cell)          return value;
}

共有1个答案

强才捷
2023-03-14

一般来说,从本文档中,您可以使用getHeight()获取您的光标,而不是编写您自己的循环。显然,这也会减少执行时间。另外,您编写的代码也可能导致异常,因为没有更多的物理行。

ws.getRow(i); can cause a fatal error if i>height of the last row
 类似资料:
  • 我正在深入研究 java 并发 API,并试图了解读写锁的有用性。javadoc说读写块维护一对锁,一个用于读取,另一个用于写入操作。虽然写锁定是线程的独占访问,但多个线程可以获取读锁定。因此,如果在读取部分,我们所做的只是读取操作,并且无论如何我们都提供多个线程访问,那么首先需要读锁吗?是否存在读写锁实际上有用的情况?

  • 问题内容: 我正在尝试在某些python代码和arduino代码之间来回“乒乓”信息。我想定期向arduino代码发送两个设定值(例如在分钟上),在arduino上读取它们并更新变量,然后定期(例如在30秒内)将状态信息从arduino发送回python。最终,python将从mySQL数据库发送信息并从中提取信息(后来的开发)。 现在,我无法获得可靠往返的信息。我没有在搜索中找到与此相近的任何内

  • 本文向大家介绍写出二分查找的代码。相关面试题,主要包含被问及写出二分查找的代码。时的应答技巧和注意事项,需要的朋友参考一下 【参考答案】

  • 1.3. 查找重复的行 对文件做拷贝、打印、搜索、排序、统计或类似事情的程序都有一个差不多的程序结构:一个处理输入的循环,在每个元素上执行计算处理,在处理的同时或最后产生输出。我们会展示一个名为dup的程序的三个版本;灵感来自于Unix的uniq命令,其寻找相邻的重复行。该程序使用的结构和包是个参考范例,可以方便地修改。 dup的第一个版本打印标准输入中多次出现的行,以重复次数开头。该程序将引入i

  • 问题内容: 如何使用msgpack对字典进行序列化/反序列化? 问题答案: 在Python文档似乎不是那么好,所以这里是我的尝试。 安装 读写msgpack 对于您的应用程序,以下内容可能很重要: 其他编程语言的支持 阅读/写作表现 紧凑度(文件大小) 另请参阅:数据序列化格式的比较 如果您想寻找一种制作配置文件的方法,则可能需要阅读我的短文《Python中的配置文件》。

  • 问题内容: 我试图逐行读取文件,然后使用Node.js将其输出到另一个文件。 我的问题是由于Node.js的异步特性,行的顺序有时会混乱。 例如,我的输入文件就像:第1行第2行第3行 但是输出文件可能像:第1行第3行第2行 下面是我的代码。 任何想法将不胜感激,谢谢。 问题答案: 如果要编写同步代码,请仅使用同步功能: 对于异步方法,您可以编写类似