注意分为三个部分:前台上传页面,控制层,bean层
前台上传页面upload.jsp
<form action="uuFile.action" enctype="multipart/form-data" method="post">//文件上传一定要加上enctype="multipart /form-data"
<input type="file" name="excelfile">
<input type="submit" value="上传">
</form>
excel对应的模型:excel.java
private int number;
private int id;
private String name;
...
处理excel的类JxlReadExcel.java 中的读取方法
public static List<Excel> doread(File file){
Workbook workbook=Workbook.getWorkbook(file);
Sheet sheet=workbook.getSheet(0);
Excel e=null;
List<Excel> list=null;
//检查是否符合一定的格式
if((sheet.getCell(0, 0).getContents().equals("id"))&&(sheet.getCell(1, 0).getContents().equals("name"))&&(sheet.getCell(2, 0).getContents().equals("number"))){
e=new Excel;
for(int i=0;i<sheet.getRows();i++){
e.setId(Integer.parseInt(sheet.getCell(0, i).getContents())); //获取的数据全为String
e.setName(sheet.getCell(1,i).getContents());
e.setNumber(Integer.parseInt(sheet.getCell(2, i).getContents()));
list.add(e);
}
}
workbook.close();
return list;
}
利用struts2获取文件及相关判断 UploadFile.java
private File excelfile;
private String excelfileFileName;
private List<Excel> list;
public File getExcelfile() {
return excelfile;
}
public void setExcelfile(File excelfile) {
this.excelfile = excelfile;
}
public String getExcelfileFileName() {
return excelfileFileName;
}
public void setExcelfileFileName(String excelfileFileName) {
this.excelfileFileName = excelfileFileName;
}
public List<Excel> getList() {
return list;
}
public void setList(List<Excel> list) {
this.list = list;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("zzx "+excelfile);
System.out.println("zzx"+excelfileContentType);
System.out.println(excelfileFileName.substring(excelfileFileName.lastIndexOf(".")+1)); //获得扩展名,可进行判断
System.out.println("zzx"+excelfileFileName);
list=new JxlReadExcel().main(excelfile);
if(list==null){
System.out.println("有错");
return ERROR;
}
return SUCCESS;
}