public Vector<ResultModel> GetResults() { try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager
.getConnection("jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=E:\\JAVA\\JAVA项目\\TestForExcel\\WebRoot\\教技0802成绩单.xls");
// excel里面的sheet 要用[$]括起来
ps = conn.prepareStatement("select * from [教技0802$]");
rs = ps.executeQuery();
while (rs.next()) {
rm = new ResultModel(rs.getString(2), rs.getString(3), rs
.getString(4), rs.getString(5), rs.getString(6), rs
.getString(7), rs.getString(9), rs.getString(10), rs
.getString(11));
String rmNameString=rm.getName();
if (rmNameString.equals("课程名") || rmNameString.equals("学分")
|| rmNameString.equals("姓名") ) {
continue;
}
vrm.add(rm);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
rs.close();
ps.close();
conn.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
return vrm;
}DBQ=E:\\JAVA\\JAVA项目\\TestForExcel\\WebRoot\\教技0802成绩单.xls"
如何把这个绝对路径写成相对路径
这个方法的类放在E:\JAVA\JAVA项目\TestForExcel\src\com\dealexcel\DealExcel.java
Properties properties = System.getProperties();
properties.getProperty("user.dir")
获取当前类的绝对路径:
当前类名.class.getResource(".").getPath() / 或 this.class.getResource(".").getPath()
获取当前类同目录下某个properties文件:
String path=ReportPathUtil.class.getResource("jasperPath.properties").getPath();
Properties proFile=new Properties();
proFile.load(new FileInputStream(path));
获取当前类所在目录的上下级目录:
A.class.getResource("../Fold-B").getPath()
你直接写这个文件名就可以找到,不用加路径,如果是"WebRoot\\upload\\教技0802成绩单.xls"你写成 path ="upload/教技0802成绩单.xls" 就OK了
教技0802成绩单.xls放在E:\\JAVA\\JAVA项目\\TestForExcel\\WebRoot\\教技0802成绩单.xls"
而类文件在 E:\JAVA\JAVA项目\TestForExcel\src\com\dealexcel\DealExcel.java
可以写成../../../WebRoot\\教技0802成绩单.xls