Ошибка загрузки excel cannot get a string value from a numeric cell

У меня есть лист Excel с колонкой даты, когда я запускаю свою программу, я получил эту ошибку:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell

Мой код, который я запускаю:

String date =sheets.getRow(choosenRow).getCell(3).getStringCellValue().toString();

Как я могу преобразовать числовое значение в строку? в моем случае я использовал .toString();, но, похоже, это не сработало.

4 ответа

Лучший ответ

Я считаю, что это потому, что вы используете .getStringCellValue(), когда вы должны использовать getNumericCellValue(). .getStringCellValue() нельзя использовать с ЦИФРОВЫМИ ячейками. Я предполагаю, что вы используете Apache POI.

См. https://poi.apache.org/apidocs /org/apache/poi/ss/usermodel/Cell.html для получения дополнительной информации.

Я не уверен, почему за меня проголосовали. Можете ли вы дать мне знать в комментариях о том, как я могу переписать его, чтобы было более понятно (если это проблема), или скажите, как это неправильно?


1

MajikalExplosions
17 Июл 2018 в 07:45

Я не проверял твой код ..!

Но

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

Любить :

Object objdata = sheets.getRow(choosenRow).getCell(3).getStringCellValue();


0

Bhola
17 Июл 2018 в 07:32

Ошибка говорит вам, что в ячейке типа NUMERIC вы можете использовать соответствующий метод getNumericCellValue()

String date = "" + sheets.getRow(choosenRow).getCell(3).getNumericCellValue();

Если вы раньше не знали тип и вам нужно прочитать некоторые значения, вы можете добавить switch к типу (getCellType()) и из результата этого перечисления использовать правильный метод

Специально для числового типа вы можете проверить элемент даты:

public String getContent(Cell c){
    switch(c.getCellType()){
        case: NONE     :  throw new IllegalArgumentException("NONE");
        case: BLANK    :  return "";
        case: BOOLEAN  :  return ""+c.getBooleanCellValue();
        case: ERROR    :  return ""+c.getErrorCellValue()
        case: FORMULA  :  return c.getCellFormula()
        case: NUMERIC  :  return HSSFDateUtil.isCellDateFormatted(c)) ? 
                                 c.getDateCellValue()) : ""+c.getNumericCellValue();
        case: STRING   :  return c.getStringCellValue()
}

См. Как читать Excel ячейка с датой в Apache POI?


-1

azro
17 Июл 2018 в 08:01

Спасибо всем, теперь все работает отлично. Я изменил код, чтобы быть таким:

Date date =sheets.getRow(choosenRow).getCell(3)getDateCellValue();
dateTextField.setText(""+date);


0

mona
18 Июл 2018 в 06:41

Я пытаюсь использовать данные из электронной таблицы в Excel, но всегда из этой ошибки уже пробовал форматировать рабочий лист на текст и номер, и все еще ошибка сохраняется.

Я видел, как человек, использующий его, разрешил cell.setCellType ( Cell.CELL_TYPE_STRING ) ;, но я не знаю, где я вписываю этот фрагмент в свой код.

WebElement searchbox = driver.findElement(By.name("j_username"));
WebElement searchbox2 = driver.findElement(By.name("j_password"));         

try {
    FileInputStream file = new FileInputStream(new File("C:\paulo.xls")); 
    HSSFWorkbook workbook = new HSSFWorkbook(file);
    HSSFSheet sheet = workbook.getSheetAt(0);

    for (int i=1; i <= sheet.getLastRowNum(); i++){
        String j_username = sheet.getRow(i).getCell(0).getStringCellValue();
        String j_password = sheet.getRow(i).getCell(0).getStringCellValue();

        searchbox.sendKeys(j_username);
        searchbox2.sendKeys(j_password);
        searchbox.submit();  

        driver.manage().timeouts().implicitlyWait(10000, TimeUnit.MILLISECONDS);
    }

    workbook.close();
    file.close();
} catch (FileNotFoundException fnfe) {
    fnfe.printStackTrace();
} catch (IOException ioe) {
    ioe.printStackTrace();

4b9b3361

Ответ 1

Форматтер будет работать нормально в этом случае.

import org.apache.poi.ss.usermodel.DataFormatter;

FileInputStream fis = new FileInputStream(workbookName);
Workbook workbook = WorkbookFactory.create(fis);
Sheet sheet = workbook.getSheet(sheetName);
DataFormatter formatter = new DataFormatter();
String val = formatter.formatCellValue(sheet.getRow(row).getCell(col));
list.add(val);   //Adding value to list

Ответ 2

    Cell cell = sheet.getRow(i).getCell(0);
    cell.setCellType ( Cell.CELL_TYPE_STRING );
    String j_username = cell.getStringCellValue();

Забастовкa >

UPDATE

Хорошо, как было сказано в комментариях, несмотря на это, это неправильный метод извлечения данных из ячейки Excel.

В соответствии с руководством здесь:

Если то, что вы хотите сделать, это получить значение String для вашей числовой ячейки, стоп!. Это не способ сделать это. Вместо этого, для извлечения строки значение числовой или логической или даты ячейки, вместо этого используйте DataFormatter.

И в соответствии с API DataFormatter

DataFormatter содержит методы форматирования значения, хранящегося в Cell. Это может быть полезно для отчетов и графических интерфейсов, когда вы необходимо отображать данные точно так, как они отображаются в Excel. Поддерживаемые форматы включают в себя валюту, SSN, проценты, десятичные знаки, даты, номера телефонов, почтовые индексы и т.д.

Итак, правильный способ показать числовое значение ячейки выглядит следующим образом:

 DataFormatter formatter = new DataFormatter(); //creating formatter using the default locale
 Cell cell = sheet.getRow(i).getCell(0);
 String j_username = formatter.formatCellValue(cell); //Returns the formatted value of a cell as a String regardless of the cell type.

Ответ 3

Как объяснено в Apache POI Javadocs, вы не должны использовать cell.setCellType(Cell.CELL_TYPE_STRING) для получения строкового значения числовой ячейки, ll освободить все форматирование

Вместо этого, как объясняет javadocs, вы должны использовать DataFormatter

То, что DataFormatter делает, принимает значение с плавающей запятой, представляющее ячейку, хранится в файле вместе с применяемыми к нему правилами форматирования и возвращает вам строку, которая выглядит так, как это делает ячейка в Excel.

Итак, если вы после строки ячейки, выглядящей так же, как и в Excel, просто выполните:

 // Create a formatter, do this once
 DataFormatter formatter = new DataFormatter(Locale.US);

 .....

 for (int i=1; i <= sheet.getLastRowNum(); i++) {
        Row r = sheet.getRow(i);
        if (r == null) { 
           // empty row, skip
        } else {
           String j_username = formatter.formatCellValue(row.getCell(0));
           String j_password =  formatter.formatCellValue(row.getCell(1));

           // Use these
        }
 }

Форматирующий элемент вернет ячейки String как есть, а для числовых ячеек будут применяться правила форматирования по стилю к числу элементов

Ответ 4

С помощью DataFormatter эта проблема разрешена. Спасибо «Гагравар» за начальную должность.

DataFormatter formatter = new DataFormatter();

String empno = formatter.formatCellValue(cell0);

Ответ 5

CellType cell = row.getCell(j).getCellTypeEnum();

switch(cell) {
    case NUMERIC:
        intVal = row.getCell(j).getNumericCellValue();
        System.out.print(intVal);
        break;
    case STRING:
        stringVal = row.getCell(j).getStringCellValue();
        System.out.print(stringVal);
        break;
}

Ответ 6

Используйте этот код, который определенно работает, и я его модифицировал.

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
//import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.*;

public class TestApp {

    public static void main(String[] args) throws Exception {

        try {

            Class forName = Class.forName("com.mysql.jdbc.Driver");
            Connection con = null;
            con = DriverManager.getConnection("jdbc:mysql://localhost/tables", "root", "root");
            con.setAutoCommit(false);
            PreparedStatement pstm = null;
            FileInputStream input = new FileInputStream("C:\Users\Desktop\a1.xls");
            POIFSFileSystem fs = new POIFSFileSystem(input);
            Workbook workbook;
            workbook = WorkbookFactory.create(fs);
            Sheet sheet = workbook.getSheetAt(0);
            Row row;
            for (int i = 1; i <= sheet.getLastRowNum(); i++) {
                row = (Row) sheet.getRow(i);
                String name = row.getCell(0).getStringCellValue();
                String add = row.getCell(1).getStringCellValue();

                int  contact = (int) row.getCell(2).getNumericCellValue();

                String email = row.getCell(3).getStringCellValue();

                String sql = "INSERT INTO employee (name, address, contactNo, email) VALUES('" + name + "','" + add + "'," + contact + ",'" + email + "')";
                pstm = (PreparedStatement) con.prepareStatement(sql);
                pstm.execute();
                System.out.println("Import rows " + i);
            }
            con.commit();
            pstm.close();
            con.close();
            input.close();
            System.out.println("Success import excel to mysql table");
        } catch (IOException e) {
        }
    }

}

Ответ 7

Это будет работать:

WebElement searchbox = driver.findElement(By.name("j_username"));
WebElement searchbox2 = driver.findElement(By.name("j_password"));         


try {

      FileInputStream file = new FileInputStream(new File("C:\paulo.xls")); 
      HSSFWorkbook workbook = new HSSFWorkbook(file);

      HSSFSheet sheet = workbook.getSheetAt(0);

    for (int i=1; i <= sheet.getLastRowNum(); i++){

            HSSFCell j_username = sheet.getRow(i).getCell(0)
            HSSFCell j_password = sheet.getRow(i).getCell(0)

            //Setting the Cell type as String
            j_username.setCellType(j_username.CELL_TYPE_STRING)
            j_password.setCellType(j_password.CELL_TYPE_STRING)

            searchbox.sendKeys(j_username.toString());
            searchbox2.sendKeys(j_password.toString());


            searchbox.submit();       

            driver.manage().timeouts().implicitlyWait(10000, TimeUnit.MILLISECONDS);

    }

      workbook.close();
      file.close();

     } catch (FileNotFoundException fnfe) {
      fnfe.printStackTrace();
     } catch (IOException ioe) {
      ioe.printStackTrace();
     }

Ответ 8

используйте код cell.setCellType(Cell.CELL_TYPE_STRING); перед прочтением строкового значения, которое может вам помочь. Я использую версию POI 3.17 Beta1, конечно, совместимость версии также..

Ответ 9

Это один из других способов решения ошибки: «Не удается получить текстовое значение из числовой ячейки» Poi «»

Перейти к листу Excel. Перетащите и выберите цифры, которые вы импортируете данные из листа Excel. Перейдите в «Формат»> «Число»> «Выберите обычный текст», затем «Экспортируйте как .xlsx». Теперь попробуйте запустить скрипт

Надежда работает отлично…!

Не удается получить текстовое значение из числовой ячейки «Poi».img

Ответ 10

Если вы обрабатываете строки с помощью cellIterator…. тогда это работает для меня….

  DataFormatter formatter = new DataFormatter();   
  while(cellIterator.hasNext())
  {                         
        cell = cellIterator.next();
        String val = "";            
        switch(cell.getCellType()) 
        {
            case Cell.CELL_TYPE_NUMERIC:
                val = String.valueOf(formatter.formatCellValue(cell));
                break;
            case Cell.CELL_TYPE_STRING:
                val = formatter.formatCellValue(cell);
                break;
        }
    .....
    .....
  }

Ответ 11

Если вы используете конфигурацию Excel Data для какой-либо платформы или извлекаете данные из Excel, скопируйте код ниже.

Это будет полезно для извлечения как строки, так и числового значения из Excel. Он также будет полезен для получения мобильных номеров из Excel, и если вы не хотите десятичного формата.

public class ExcelDataConfig {
    XSSFWorkbook wb;
    XSSFSheet sheet;
    public ExcelDataConfig(String excelPath)
    {
        try {
            File src=new File(excelPath);
            FileInputStream fis=new FileInputStream(src);
             wb=new XSSFWorkbook(fis);
        }

        catch (Exception e) {

            System.out.println(e.getMessage());
        }

    }

    public String getData(int sheetNumber,int row,int column)
    {
        DataFormatter formatter = new DataFormatter();

        sheet=wb.getSheetAt(sheetNumber);
        String data1 = formatter.formatCellValue(sheet.getRow(row).getCell(column));
    //  String data =sheet.getRow(row).getCell(column).getStringCellValue();
    //  return data;
        return data1;

    }
}

проблема

POIдействоватьExcelВстретить время от времениCannot get a text value from a numeric cellНенормальная ошибка

java.lang.IllegalStateException: Cannot get a text value from a numeric cell

Причина: ячейка данных Excel имеет различные типы, когда мы пытаемся прочитать строку из ячейки цифрового типа и записывать в базу данных, появится ошибка исключения не может получить текстовое значение из числовой ячейки.

решить

проходитьsetCellType()настраиватьcellТип, унифицированный набор в типе строки, затем получить

Row row = sheet.getRow(i);
for (int j = 0; j < row.getPhysicalNumberOfCells(); j++) {
	// 
	row.getCell(j).setCellType(Cell.CELL_TYPE_STRING);
	// 
	String cellValue = row.getCell(j).getStringCellValue();
	System.out.println(cellValue);
}

I Was Executing Test Scripts Though Excel Sheet Using Keyword Driven Data Framework.

While Executing Am Geting Error as :

java.lang.RuntimeException: java.lang.IllegalStateException: Cannot
get a STRING value from a NUMERIC cell

My Selenium Code is

    package DemoData;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import DataConfig.ExcelDataConfig;

public class ReadArrayData 
{

    WebDriver driver;


  @Test(dataProvider="Tipreports")
  public void Dataprovider(String username, String password) throws InterruptedException
  {
      System.setProperty("webdriver.chrome.driver", "F:\New folder\chromedriver.exe");

      driver = new ChromeDriver();

      driver.get("http://xxxxxxxxxxxxxxxx/");

      driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

      driver.manage().window().maximize();

      driver.findElement(By.id("txt_username")).sendKeys(username);

      driver.findElement(By.id("txt_pin")).sendKeys(password);

      driver.findElement(By.xpath("//*[@id='btn_click']")).click();

      Thread.sleep(5000);

      //driver.getCurrentUrl();

      Assert.assertTrue(driver.getCurrentUrl().contains("http://xxxxxxxxxxxxx/Algorithm_Run.aspx"),"User Not able to Login - Invalid Credentials");   

  }

  @AfterMethod
  public void Close()
  {
      driver.quit();
  }

  @DataProvider(name="Tipreports")
  public Object[][] passdata()
  {

      ExcelDataConfig config = new ExcelDataConfig("E:\Workspace\KeywordFramework\TestData\Dataprovider.xlsx");
         int rows = config.getRowCount(0);

         Object[][] data = new Object[rows][2];

         for(int i=0;i<rows;i++)
         {
             data[i][0]=config.getData(0, i, 0);
             data[i][1]=config.getData(0, i, 1);

         }
        return data;

  }

}

Here is My Excel Data Config Code :

package DataConfig;

import java.io.File;
import java.io.FileInputStream;

import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelDataConfig 
{
    XSSFWorkbook wb;
    XSSFSheet Sheet1;

    public ExcelDataConfig(String excelpath)
    {
        try
        {
            File src = new File(excelpath);
            FileInputStream fis = new FileInputStream(src);
            wb= new XSSFWorkbook(fis);
        }
        catch(Exception e)
        {
            System.out.println(e.getMessage());
        }
    }

    public String getData(int sheetnumber, int row, int column)
    {
        Sheet1 = wb.getSheetAt(sheetnumber);

        String data =Sheet1.getRow(row).getCell(column).getStringCellValue();

        return data;

    }

    public int getRowCount(int sheetindex)
    {
        int row = wb.getSheetAt(sheetindex).getLastRowNum();

        row = row+1;

        return row;
    }

}

Can you please help me to sort out this, Why am getting this error? I have declared 2 Columns and 4 Rows using for loop. But am getting cannot Get The error as cannot get the string value from Numeic Cell.

I am trying to read data from an excel sheet and write on my application.But shows an error while trying to pass a numeric value using string. Please suggest me how can I resolve the issue. Please see my code and error screenshot below:

package ReadExcelData;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Locale;

import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ReadExcel {

public static void main(String[] args) throws Exception {
    File src=new File("E:\QA_Automation\TestData_Excel\TestInputData.xlsx");

    FileInputStream fis=new FileInputStream(src);

    XSSFWorkbook wb=new XSSFWorkbook(fis);

    XSSFSheet sheet1=wb.getSheetAt(0);
    int rowcount=sheet1.getLastRowNum();
    System.out.println("Total Row" + rowcount);

    for(int i=0;i<rowcount;i++) {
        String data0= sheet1.getRow(i).getCell(0).getStringCellValue();
        System.out.println("Test Data From Excel"+data0);
    }

    wb.close();


}

}

Please check below image for the exception :

enter image description here

Sagar007's user avatar

Sagar007

1,3103 gold badges9 silver badges24 bronze badges

asked Oct 26, 2017 at 8:44

Shirin Akter's user avatar

3

This may be helpful to you..

Open the Excel sheet and select all (Ctrl+a) then right click and click Format cells then in number tab change the category to Text and click Ok…

answered Oct 26, 2017 at 11:00

Sachintha's user avatar

SachinthaSachintha

3801 gold badge5 silver badges16 bronze badges

1

This exception is occurred when code try to read Numeric value as string. Apache POI will not convert from Numeric to String.


There are two solution :

1. First convert cell type to string and Read it. Please check below code :

    import java.io.File;
        import java.io.FileInputStream;
        import java.io.FileNotFoundException;
        import java.util.Locale;
        
        import org.apache.poi.ss.usermodel.Cell;
        import org.apache.poi.ss.usermodel.DataFormatter;
        import org.apache.poi.xssf.usermodel.XSSFSheet;
        import org.apache.poi.xssf.usermodel.XSSFWorkbook;
        
        public class ReadExcel {
        
        public static void main(String[] args) throws Exception {
            File src=new File("C:\Users\Sagar\Desktop\TestInputData.xlsx");
        
            FileInputStream fis=new FileInputStream(src);
        
            XSSFWorkbook wb=new XSSFWorkbook(fis);
        
            XSSFSheet sheet1=wb.getSheetAt(0);
            int rowcount=sheet1.getLastRowNum();
            System.out.println("Total Row" + rowcount);
        
            for(int i=0;i<rowcount+1;i++) {
        
                System.out.println(i);
                //GET CELL
                Cell cell1 = sheet1.getRow(i).getCell(0);   
                //SET AS STRING TYPE
                cell1.setCellType(Cell.CELL_TYPE_STRING);
                String data0= cell1.getStringCellValue();
                System.out.println("Test Data From Excel : "+data0);
            }
        
            wb.close();
          }
        }

2. Get type first and print by its option. Please see the code:

        import java.io.File;
        import java.io.FileInputStream;
        import java.io.FileNotFoundException;
        import java.util.Locale;
        
        import org.apache.poi.ss.usermodel.Cell;
        import org.apache.poi.ss.usermodel.DataFormatter;
        import org.apache.poi.ss.usermodel.DateUtil;
        import org.apache.poi.xssf.usermodel.XSSFSheet;
        import org.apache.poi.xssf.usermodel.XSSFWorkbook;
        
        public class ReadExcel {
        
        public static void main(String[] args) throws Exception {
            File src=new File("C:\Users\Sagar\Desktop\TestInputData.xlsx");
        
            FileInputStream fis=new FileInputStream(src);
        
            XSSFWorkbook wb=new XSSFWorkbook(fis);
        
            XSSFSheet sheet1=wb.getSheetAt(0);
            int rowcount=sheet1.getLastRowNum();
            System.out.println("Total Row " + rowcount);
        
            for(int i=0;i<rowcount+1;i++) {
        
                
                Cell cell1 = sheet1.getRow(i).getCell(0);   
                
                switch (cell1.getCellType()) {
                
                case Cell.CELL_TYPE_STRING:
                    System.out.println(cell1.getRichStringCellValue().getString());
                    break;
                    
                case Cell.CELL_TYPE_NUMERIC:
                    if (DateUtil.isCellDateFormatted(cell1)) {
                        System.out.println(cell1.getDateCellValue());
                    } else {
                        System.out.println(cell1.getNumericCellValue());
                    }
                    break;
                    
                case Cell.CELL_TYPE_BOOLEAN:
                    System.out.println(cell1.getBooleanCellValue());
                    break;
                    
                case Cell.CELL_TYPE_FORMULA:
                    System.out.println(cell1.getCellFormula());
                    break;
                    
                default:
                    System.out.println();
            }
                
                //String data0= cell1.getStringCellValue();
                //System.out.println("Test Data From Excel : "+data0);
            }
        
            wb.close();
        
        
        }
        
        }

Note : Please check loop condition.It is also wrong. My code will not skip last row.

Prome's user avatar

Prome

1,0178 silver badges24 bronze badges

answered Oct 26, 2017 at 9:26

Sagar007's user avatar

Sagar007Sagar007

1,3103 gold badges9 silver badges24 bronze badges

2

You Can Check if cell is numeric or String through this code

     if(MytempCell.getCellType() == Cell.CELL_TYPE_NUMERIC)
       your code ...
     else if(MytempCell.getCellType() == Cell.CELL_TYPE_STRING)
      your code ..

answered Oct 9, 2019 at 7:46

Amjad Ahmad's user avatar

Assuming there is the column holding only numeric cells you can approach with this:

for(int i=0;i<rowcount;i++) {
    String data0 = String.valueOf(sheet1.getRow(i).getCell(0).getNumericCellValue());
    System.out.println("Test Data From Excel" + data0);
}

The approach above is a pure java way to display data of double type. However if you need the formatting like you would have in Excel you should check this doc: https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/DataFormatter.html

answered Oct 26, 2017 at 9:13

Alexey R.'s user avatar

Alexey R.Alexey R.

11.5k5 gold badges18 silver badges39 bronze badges

*CELLNAME*.setCellType(CellType.NUMERIC);

This works wonderfully and converts the data in the cell as numeric.

For operating on that value use:

*CELLNAME*.getNumericCellValue()

Bharat Mane's user avatar

Bharat Mane

6,77510 gold badges39 silver badges67 bronze badges

answered Jun 10, 2018 at 17:21

dsk's user avatar

Another way is adding the apostrophe before number in Excel cell —> Excel will treat it as text.

‘123456

answered May 14, 2020 at 3:42

hthhth's user avatar

If you don’t care what datatype the cell is, you can use DataFormatter.formatCellValue(Cell). This returns the default string format for each cell type, and it won’t execute Excel formulas (it returns the formula text).

[See \ modified below]

package ReadExcelData;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Locale;

import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ReadExcel {

public static void main(String[] args) throws Exception {
    File src=new File("E:\QA_Automation\TestData_Excel\TestInputData.xlsx");

    FileInputStream fis=new FileInputStream(src);

    XSSFWorkbook wb=new XSSFWorkbook(fis);

    XSSFSheet sheet1=wb.getSheetAt(0);
    int rowcount=sheet1.getLastRowNum();
    System.out.println("Total Row" + rowcount);

    for(int i=0;i<rowcount;i++) {
        String data0= new DataFormatter().formatCellValue(sheet1.getRow(i).getCell(0)); \ modified
        System.out.println("Test Data From Excel"+data0);
    }

    wb.close();


}

}

answered Feb 13, 2020 at 1:22

Thomas Taylor's user avatar

driver.findElement(By.id(«field on screen»)).sendKeys(String.valueOf(cell.getNumericCellValue()));

answered Apr 18, 2021 at 0:26

FriendlyDeveloper32's user avatar

1

The easiest way to remove the error:: Cannot get a STRING value from a NUMERIC cell
—> Go to excel —> Put an apostrophe at start of numeric data cell.
When the code will run, it will consider the cell value as String and will not throw any such error.

answered Jul 7, 2021 at 14:12

user50195's user avatar

Like this post? Please share to your friends:
  • Ошибка если документ excel
  • Ошибка доступа к файлу word при сохранении файла
  • Ошибка доступа к приложению excel
  • Ошибка документ не сохранен excel что делать
  • Ошибка для направления команды приложению excel