записать данные из карты в файл excel для номера телефона, например +1(651)229-1756, используя apache poi в селене - PullRequest
0 голосов
/ 30 мая 2019

Я читаю данные из базы данных, используя соединение с базой данных в Selen Webdriver и сохраняю на карте. Я создал один файл Excel для целей сопоставления. Файл Excel содержит три столбца, как показано ниже

Имя столбца Excel: field-Name Тип поля SourceMapping

Значения в столбцах row1: Таблица электронной почты email_address

Значения в столбцах row2: номер телефона Таблица phone_number

Я получаю данные от Map, которая содержит данные таблицы, которые мы сохранили в результате запроса sql, на основании if field-Name = номер телефона и SourceMapping = 'phone_number'. Я столкнулся с проблемой здесь - я могу прочитать данные из карты для поля номера телефона, но не могу записать в средствах Excel после того, как поле номера телефона выполнения становится черным, а остальная часть поля содержит правильные значения. Если я сопоставил этот номер телефона с другим полем, например

Имя столбца Excel: field-Name Тип поля SourceMapping

Значения в столбцах row2: номер телефона Table city

тогда этот номер телефона содержит это значение. В приведенном выше примере он будет содержать значение города.

Я не уверен, почему он не записывает это значение. Пример телефонного номера = + 1 (651) 319-1108.

Я не уверен, почему не принимаю это, поскольку я конвертирую значение в строку перед записью в Excel. Пожалуйста, помогите в этом.

Я преобразовал значение в Long.parseLong(value), но оно не сработало.

for(int j=1;j<=Mapsheet.getLastRowNum();j++)
{

  if(CommonUtilities.CommonLibrary.Map.Map(Mapsheet, "Field-Type", j).equalsIgnoreCase("Table"))
  {
    for(Entry<String, Object> entry:tabledata.entrySet())
    {

      if(entry.getKey().toString().equals("contacts.phone_number")) {
        System.out.println("Actual in database :" + entry.getValue().toString());

      } //comment here phone number value is coming from database as +1(651)319-1108.

Для приведенного ниже кода, почему он не записывается в Excel, я не уверен, потому что я конвертирую его в String, тогда он также становится пустым в выходной ячейке.

    if(entry.getKey().toString().contains( CommonUtilities.CommonLibrary.Map.Map(Mapsheet, "SourceMapping", j)))
    {

      String Value="";
      try {
        Value=entry.getValue().toString();  
        System.out.println("phone_number break point"+Value);
      }
      catch(Exception e)
      {
        //e.printStackTrace();
        Value="";
      }


      ResultSheet.getRow(i)
                 .createCell( CommonUtilities.CommonLibrary.Map.getColumnIndex( ResultSheet, CommonUtilities.CommonLibrary.Map.Map(Mapsheet, "Field-Name", j) ) )
                 .setCellValue(Value);

      break;

    }
  }
}

Ожидаемый результат: код должен записывать данные в ячейку Excel для номера телефона: +1(651)319-1108, как он пишет для другого поля. Может возникнуть проблема с форматированием ячейки. Я создаю новый Excel и записываю в него данные. конвертация в long также здесь не сработала.

Фактический результат: ячейка содержит пустое значение для поля номера телефона.

...