Java 如何将excel单元格值转换为字符串类型?在excel中将单元格设置为文本类型无效
我试图从excel工作表中读取一个值,然后在文本字段中输入 比较webelement中的值 如何将该值作为字符串而不是数字从单元格中获取? 下面给出了读取和编写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);
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请解释一下这个解决方案的工作原理,以及他们在代码中使用的其他方法