【问题标题】:Issue in using the data that is being fetched from Excel sheet使用从 Excel 工作表中获取的数据时出现问题
【发布时间】:2018-02-20 12:28:35
【问题描述】:

我有以下代码,其中完成了从 excel 表中获取数据,然后将此数据添加到如下列表中:

  List<HashMap<String,String>> mydata = new ArrayList<>();
  try 
  {
     FileInputStream fs = new FileInputStream(filepath);
     XSSFWorkbook workbook = new XSSFWorkbook(fs);
     XSSFSheet sheet = workbook.getSheet(sheetName);
     Row HeaderRow = sheet.getRow(0);
     for(int i=1;i<sheet.getPhysicalNumberOfRows();i++)
     {
        Row currentRow = sheet.getRow(i);
        HashMap<String,String> currentHash = new HashMap<String,String>();
        for(int j=0;j<currentRow.getPhysicalNumberOfCells();j++)
        {
           Cell currentCell = currentRow.getCell(j);
           switch (currentCell.getCellType())
           {
           case Cell.CELL_TYPE_STRING:        
           currentHash.put(HeaderRow.getCell(j).getStringCellValue(), currentCell.getStringCellValue());
              break;                                  
           }
        }
        mydata.add(currentHash);

我有另一个类,我们正在使用 Properties 类并设置属性:

 public List<HashMap<String,String>> datamap;
 public static Properties prop;
public void read_Data_FromExcel(String arg1) throws Throwable {
     datamap = DataHelper.data("C:/FINALORDER/ORDERING_Tools/ordering-tools/src/test/resources/Test451.xlsx","Sheet1");
        prop=new Properties();
          int index = Integer.parseInt(arg1)-2;
          FileInputStream fs = new FileInputStream("C:\\FINALORDER\\ORDERING_Tools\\ordering-tools\\src\\test\\resources\\Test451.xlsx");
             XSSFWorkbook workbook = new XSSFWorkbook(fs);
             XSSFSheet sheet = workbook.getSheet("Sheet1");
             Row HeaderRow = sheet.getRow(0);
             for(int i=0;i<HeaderRow.getPhysicalNumberOfCells();i++) {
            prop.setProperty(HeaderRow.getCell(i).toString(), datamap.get(index).get(HeaderRow.getCell(i).toString()));

使用上面的代码,我从 excel 中获取数据,然后将该数据输入到屏幕中的字段中,如下所示:

  try {
    String remark=ExcelSteps.prop.getProperty("Remark");
    mosdpOrderSummaryEditPage.tbx_remarks.type(remark);
    }catch(Exception e) {
    }

问题是如果有很多字段,如备注、姓名、地址、id,那么我必须使用上面的代码一个一个地获取它们,因为备注是一种冗余工作和不必要地增加代码,有没有办法我可以通过它减少代码或制作任何通用方法。

【问题讨论】:

    标签: java selenium


    【解决方案1】:

    您可以创建单独的列并通过

    ExcelSteps.prop.getProperty("Here you should pass the column data");
    

    通过此代码将自动动态获取备注、名称、地址、id 字段名称。 :)

    【讨论】:

    • 我没明白你的意思
    猜你喜欢
    • 1970-01-01
    • 2020-01-26
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多