我正在尝试使用并找到另一个for循环的开始位置来读取Excel文件。
这是我的代码。
public static int CheckStartPosition(String filename,int Colno,String StartChar, int sheetno,int startpos) {
try {
Workbook workbook = new Workbook();
workbook.open(filename);
Worksheet worksheet = workbook.getWorksheets().getSheet(sheetno);
Cells cells=worksheet.getCells();
int num=cells.getMaxDataRow();
int num1=cells.getMaxDataColumn();
int numofsheet= workbook.getNumberOfSheets();
System.out.println(numofsheet);
for (int n1=0;n1<=num;n1++) {
Cell cell1=cells.getCell(n1,Colno);
if(cell1.getValue()!=null) {
String value =cell1.getValue().toString().toLowerCase();
if(value.equals(StartChar)) {
System.out.println( cell1.getValue());
int S= cell1.getRowIndex();
startpos=S+1;
System.out.println(startpos);
}
}else{}
}
workbook.save("C:\\Movies.xls",FileFormatType.EXCEL97TO2003);
return startpos;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
:-
CheckStartPosition(f1.xls, 0,"abc",2,0);
如何返回Startposition
答案 0 :(得分:3)
由于格式化,它有点难以阅读。 CheckStartPosition()需要返回一个int。在你的catch区块你不会返回任何东西。归还一些东西或者更好的方法是使用抛出IOException声明CheckStartPosition并从CheckStartPosition中删除try catch。替代使用您自己的异常类型。
答案 1 :(得分:1)
您正在捕获异常,但没有返回任何内容。试试这个:
catch (IOException e)
{
e.printStackTrace();
return -1; // Some special value that means "I exploded"
}
或者更好的是,不要抓住并将方法声明为throws IOException
答案 2 :(得分:0)
如果你得到例外,你不会退货。可能更好的方法是在方法的throws
子句中声明实际异常。
答案 3 :(得分:0)
你可以做的是在你的try-catch块之前声明返回值并给它-1。在try-catch块中,您可以分配值。在try-catch块之后,你将它返回。
int CheckStartPosition(...)
{
int returnInt = -1;
try{
...
returnInt = startpos; // instead of return startpos
...
}catch(...){
...
returnInt = -1; // if your code can crash after the "returnInt = startpos;"
}
return returnInt;
}
答案 4 :(得分:-1)
您必须使用以下内容调用您的方法:
int returnedValue = CheckStartPosition(f1.xls, 0,"abc",2,0);