【问题标题】:Value is not getting printed in Datasheet excel for setCellValue() using Selenium Apache POI Java webdriver使用 Selenium Apache POI Java webdriver 在数据表 excel 中为 setCellValue() 打印值
【发布时间】:2020-02-29 07:33:55
【问题描述】:

使用 Selenium Apache POI Java webdriver 在数据表 excel 中未打印值。请帮忙打印数据表 excel 中的值。

要求是在excel中传递工作表名称、行号、列号和要打印的文本。通过此代码,文本不会在 Datasheet excel 中打印。

class ReadDataSheet:

public class ReadDataSheet {
public WebDriver dr;
public HSSFWorkbook wb;
public HSSFSheet ws;
public int rowCount;
public String className;
public String sheetName;
public String colName;
public String value;

public String setValue(String SheetName, String rowName, String columnHeader, String textToPrint) {

try {
FileInputStream file = new FileInputStream(new File("./DataSheet.xls"));

wb = new HSSFWorkbook(file);

ws = wb.getSheet(SheetName);
int rownumber = getRownumber(rowName, columnHeader);
int columnNumber = getColumnNumber(columnHeader);
Cell cell;
cell = ws.getRow(rownumber).createCell(columnNumber);
            cell.setCellValue(textToPrint);

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return value;


}

Class Login:
public class Login{
public ReadDataSheet rds = new ReadDataSheet();
public void printValue() throws Exception {
rds.setValue("data details","Test case 1","Page Title","Selenium")
}
}
Class TC_01:
public class TC_01 extends Login
{
                @Test
            public void page() throws Exception  
             {                                              
                Login login = new Login(remoteDriver);

                     login.printValue();

             }
}      

【问题讨论】:

  • “文本未在数据表 excel 中打印”究竟是什么意思?有没有抛出任何错误?如果没有,则可能设置了单元格值。但所有的变化一开始都在随机存取存储器中。所以当然你还需要写出更改后的工作簿。见Reading and Rewriting Workbooks
  • 文本 Selenium 没有写入 excel。您能否通过更正和打印 oin excel 来帮助我。代码不会抛出错误,也不会在 excel 中打印。

标签: java selenium-webdriver apache-poi


【解决方案1】:

要将值写入 excel,您需要保存 excel 工作表。在

的末尾使用以下 sn-p

setValue 方法:

FileOutputStream fileOut = new FileOutputStream("poi-generated-file.xlsx");
workbook.write(fileOut);
fileOut.close();

// Closing the workbook
workbook.close();

如果不是您遇到的问题,请分享更多详细信息。

【讨论】:

    【解决方案2】:

    错误似乎在getRownumber(rowName, columnHeader); 方法中。 这个方法需要 columnHeader 作为参数有什么特别的原因吗? 它应该只将 rowName 作为输入。 能否请您发布这两种方法(getRownumber 和 getColumnNumber)的代码以及上传数据表格式?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 2017-12-18
      相关资源
      最近更新 更多