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

如何从仅使用列名的excel中获取列值?

班浩皛
2023-03-14

我想从excel表格中读取一组用户名和密码。我的用户名出现在第一列,但我的密码值出现在第8列。我不想通过给出第8列地址来读取第8列的值。相反,我想在excel工作表中的任何地方读取密码值。有什么办法可以做到这一点吗?

FileInputStream fs=new FileInputStream(strReadFile);
工作簿wb=Workbook.getWorkbook fs;
工作簿sh=wb.getSheet(“sheet1”);
int rowcount=sh.getRows();
system.out.println(“no of rows:”+rowcount);

  for(int row=1;row<rowCount;row++) {
      String Username = sh.getCell(1,row).getContents();
      driver.findElement(By.id("user_name")).sendKeys(Username);


      String Password = sh.getCell(2,row).getContents();
      driver.findElement(By.id("user_pass")).sendKeys(Password);          
      driver.findElement(By.id("login_button")).click(); 
   }

共有1个答案

谭彦
2023-03-14

根据我的理解,没有内置的方法。检查解决方案的方法列。

    for(int row=1;row<rowCount;row++) {
      String Username = sh.getCell(column("username column",sh),row).getContents();
      driver.findElement(By.id("user_name")).sendKeys(Username);


      String Password = sh.getCell(column("password column",sh),row).getContents();
      driver.findElement(By.id("user_pass")).sendKeys(Password);          
      driver.findElement(By.id("login_button")).click(); 
   }


public int column(String columnName, Sheet sheetAt) throws Exception{
    Row row = sheetAt.getRow(0);

    int col = -1;
    for (int i=0; i<row.getLastCellNum(); i++) {
        Cell cell = row.getCell(i);
        if (cell == null || cell.getCellType() == Cell.CELL_TYPE_BLANK) {
            continue;
        }
        if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
            String text = cell.getStringCellValue();
            if (columnName.equals(text)) {
                col = i;
                break;
            }
        }
    }
    if (col == -1) {
        throw new Exception("None of the cells in the first row were Patch");
    }

    return col;
}
 类似资料:
  • 我想要获取与列名相关的列值,如在policy no string中获取TXT_Policy_no等,因为excel工作表的值可以满足要求,所以我想要读取基于列名的值,以更加安全。 我的java代码:

  • 问题内容: 这是用于提供行和列ID时提供COLUMN名称的代码,但是当我提供like值时,它应该返回,但返回 我在做什么错了? (此代码是EXCEL列的参考,在这里我提供了Row,Column ID值,并期望相同的ALPHABETIC值。) 问题答案: 编辑:我认为我必须承认,正如其他一些人(他们从未留下过我的评论)所指出的那样,我的答案的上一版本(您接受了)存在一个错误,该错误使其无法正确处理大

  • 问题内容: 我想知道如何从gridview获取列名?按其编号而不按名称。例如:姓名|年龄|生日:(所以姓名= 0,年龄= 1等) 谢谢。 问题答案: 您可以这样获得它: 或像这样: Rows [0]应该是您的标题行。

  • 问题内容: 为了进行一些统计分析,我需要在Excel工作表的列中提取值。我一直在使用Apache POI包从Excel文件中读取数据,当需要迭代行时,它可以很好地工作。但是我找不到关于在API(链接文本)或通过Google搜索获取列的任何信息。 由于我需要获取不同列的最大值和最小值并使用这些值生成随机数,因此,无需选择单个列,唯一的选择是遍历行和列以获取值并一一比较。听起来不那么省时。 关于如何解

  • 我定义了一个配置,其中包含每个表的列列表,用作dedup键 例如:配置1: 这些列需要用作重复数据消除键。这个列表是动态的,有些表中有1个值,有些表中有2或3个值 我想做的是从这个列表中建立一个键列 我如何使这个动态的列表适用于任意数量的列。我试过这么做 为了实现这一点,我必须将列表转换为Df,列表中的每个值都需要在单独的列中,我无法理解这一点。 试过这么做但没用 欢迎任何意见,谢谢

  • 但这是一个如此糟糕的解决方案。 如何在excel文件中获取具有名称的特定列的值?