Java 如何将excel单元格值转换为字符串类型?在excel中将单元格设置为文本类型无效

Java 如何将excel单元格值转换为字符串类型?在excel中将单元格设置为文本类型无效,java,excel,apache,selenium,Java,Excel,Apache,Selenium,我试图从excel工作表中读取一个值,然后在文本字段中输入 比较webelement中的值 如何将该值作为字符串而不是数字从单元格中获取? 下面给出了读取和编写excel的代码 public String getValueFromCell(int iRowNumber, int iColNumber) { XSSFRow row = sheet.getRow(iRowNumber); Cell cell = row.getCell(iColNumber);

我试图从excel工作表中读取一个值,然后在文本字段中输入 比较webelement中的值

如何将该值作为字符串而不是数字从单元格中获取? 下面给出了读取和编写excel的代码

public String getValueFromCell(int iRowNumber, int iColNumber)
   {
      XSSFRow row = sheet.getRow(iRowNumber);
      Cell cell = row.getCell(iColNumber);

      return cell == null ? "" : cell.toString();
   }

   /**
    * returns no. of rows of excel sheet
    * 
    * @return
    */
   public int getRowCount()
   {
      return sheet.getLastRowNum();
   }

   /**
    * returns no. of columns of excel sheet
    * 
    * @param sheetName
    * @return
    */
   public int getColumnCount(String sheetName)
   {

      sheet = workbook.getSheet(sheetName);
      row = sheet.getRow(0);
      return row.getLastCellNum();
   }

   /**
    * return row number of a String value
    * 
    * @param value
    * @return
    */
   public int getRowNumber(String value)
   {
      XSSFSheet indexsheet = workbook.getSheet("Index");
      for(int i = 0; i <= indexsheet.getLastRowNum(); i++)
      {
         row = indexsheet.getRow(i);
         if(value.equalsIgnoreCase(row.getCell(0).getStringCellValue()))
         {
            return i + 1;
         }
      }
      return 0;
   }

   /**
    * sets data in a cell
    * 
    * @param path
    * @param sheetName
    * @param colName
    * @param rowNum
    * @param data
    * @return
    */
   public boolean setCellData(String path, String sheetName, String colName, int rowNum, String data)
   {
      try
      {
         if(rowNum <= 0)
            return false;

         int index = workbook.getSheetIndex(sheetName);
         int colNum = -1;
         if(index == -1)
            return false;


         sheet = workbook.getSheetAt(index);


         row = sheet.getRow(0);
         for(int i = 0; i < row.getLastCellNum(); i++)
         {
            if(row.getCell(i).getStringCellValue().trim().equals(colName))
               colNum = i;
         }
         if(colNum == -1)
            return false;

         sheet.autoSizeColumn(colNum);
         row = sheet.getRow(rowNum - 1);
         if(row == null)
            row = sheet.createRow(rowNum - 1);

         cell = row.getCell(colNum);
         if(cell == null)
            cell = row.createCell(colNum);

         cell.setCellValue(data);

      }
      catch(Exception e)
      {
         e.printStackTrace();
         return false;
      }
      return true;
   }

}
公共字符串getValueFromCell(int-IrownNumber,int-iColNumber)
{
XSSFRow row=sheet.getRow(IRownNumber);
Cell Cell=row.getCell(iColNumber);
返回单元格==null?”:cell.toString();
}
/**
*返回excel工作表的行数
* 
*@返回
*/
public int getRowCount()
{
返回工作表。getLastRowNum();
}
/**
*返回excel工作表的列数
* 
*@param sheetName
*@返回
*/
public int getColumnCount(字符串sheetName)
{
sheet=工作簿.getSheet(sheetName);
行=表。getRow(0);
返回row.getLastCellNum();
}
/**
*返回字符串值的行号
* 
*@param值
*@返回
*/
公共整数getRowNumber(字符串值)
{
XSSFSheet indexsheet=workbook.getSheet(“索引”);

对于(int i=0;i,据我所知,我们可以通过两种方式实现这一点

方法1:在Excel中的数值之前添加撇号(')。例如,如果Excel中有1234,则替换为“1234”。添加撇号将把数值转换为字符串

方法2:通过Java处理它。例如,做这样的事情

String value = new String("value read from Excel");
注意:我还没有测试过方法2,但它确实可以工作


希望这能有所帮助。谢谢。

我在这方面也遇到了很多问题。只需编写以下两行代码,就可以了

Cell cell= data.getRow(i).getCell(0);
String orderID1=cell.toString();

Apache Poi版本为3.15,Excel版本为2013,Excel工作表中单元格的格式设置无法解决此问题。在Excel前缀中键入“what-quickly and where-quickly”时,无法理解您的意思?假设您在Excel单元格中键入了1234,请将其替换为“1234”。尝试一下,我也不确定,,,效果很好。谢谢!!但p请解释一下这个解决方案的工作原理,以及他们在代码中使用的其他方法