尝试编写一种从单元格读取数据并将其转换为字符串的方法。 方法 : P
ublic class getStringValue {
public getStringValue(Cell cell) {
}
String display ()
{
Cell cell = null;
DataFormatter df = new DataFormatter ();
String value = df.formatCellValue(cell);
return value;
}
}
calling the method in another class
public class acessUser extends getdata {
void login(String filepath ,String filename ,String sheetname) throws IOException{
File file = new File( filepath + "\\"+ filename) ;
FileInputStream datafile = new FileInputStream(file);
HSSFWorkbook wb = new HSSFWorkbook (datafile);
Sheet sh = wb.getSheet(sheetname);
int rownum = sh.getLastRowNum()+1;
int colnum = sh.getRow(0).getLastCellNum();
String [][] data = new String [rownum][colnum];
for (int i=0 ; i< rownum ; i++)
{
Row row = sh.getRow(i);
for (int j =0 ; j < colnum ; j ++)
{
Cell cell = row.getCell(j);
getStringValue gt = new getStringValue(cell);
String value = gt.display();
//java.lang.String value = cell.getStringCellValue();
data[i][j]=value;
System.out.println(value);
//String ui = data[i][j];
}
}
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
acessUser n = new acessUser ();
n.login("A:\\selenium", "selenium.xls", "sheet1");
}
}
错误: - 线程“main”中的异常java.lang.Error:未解决的编译问题: 隐式超级构造函数getdata()未定义为默认构造函数。必须定义显式构造函数
答案 0 :(得分:1)
您将acessUser定义为getdata的子类,并且不为该类定义构造函数acessUser()。然后,您尝试通过执行new acessUser ();
来创建该类的实例。由于没有定义构造函数,因此将调用父类的构造函数,即getdata()。但似乎这个构造函数未定义。
顺便说一句,惯例是对类名的第一个字母使用大写。此外,您的display()
方法对我没有任何意义。你将null分配给单元格,然后执行String value = df.formatCellValue(cell);
...我建议你退后一步,进一步思考你的解决方案以及Java如何进一步研究这段代码。
答案 1 :(得分:0)
是的,构造函数不正确所以我将代码更改为 public class getStringValue {
public String display(Cell cell) {
DataFormatter df = new DataFormatter ();
String value = df.formatCellValue(cell);
return value;
}
}
并调用Display方法。谢谢你的帮助