导入Excel

//首先文件上传

 uploader = WebUploader.create({
        swf: "/js/webuploader/Uploader.swf",
        server: "/admin/file/uploadImg",
        pick: "#readExcel",
        auto: true,
        sendAsBinary:false,//指明使用二进制的方式上传文件
        resize: false,
        duplicate: true,//解决重复上传问题
        accept: {
            title: "上传文件",
            extensions: "xls",
            mimeTypes: "excel/xls"
        }

    });

//监听文件上传成功
    uploader.on("uploadSuccess", function(file, json) {
        location.href="/admin/duty/readExcel?url="+json.url;
    });

//然后获取数据进行存储数据库

@RequestMapping(value = "/readExcel")
public String readExcel(Model model,String url){
//获取到表格路径
//读取表格数据
String realPath = this.getRequest().getSession().getServletContext().getRealPath(url);
List<List<String>> list=this.readFromFile(realPath);
//解析数据存入数据库
for(int i=0;i<list.size();i++){
if(i>1){
Duty duty=new Duty();
duty.setAddTime(new Date());
duty.setCreateTime(list.get(i).get(0));
if(list.get(i).get(1).contains("(")){
Integer first=list.get(i).get(1).indexOf("(");
duty.setWeek("星期"+list.get(i).get(1).substring(0, first));
duty.setRemark(list.get(i).get(1).substring(first+1,list.get(i).get(1).length()-1));
}else{
duty.setWeek("星期"+list.get(i).get(1));
}
duty.setLeadName(list.get(i).get(2));
duty.setWatchName(list.get(i).get(3));
duty.setShootingName(list.get(i).get(4));
if(list.get(i).get(0)!=null&&list.get(i).get(0).contains("-")){
dutyService.add(duty);
}
}
}
//重定向到list页面
return "redirect:/admin/duty/list";

}

public List<List<String>> readFromFile(String url){
        File file = new File(url);
        StringBuffer sb = new StringBuffer();
        List<List<String>> list=new ArrayList< List<String>>();
        try {
            Workbook book = Workbook.getWorkbook(file);
            try{
                Sheet sheet = book.getSheet(0);
                for(int i = 0 ; i < 36 ; i++){
                List<String> list1=new ArrayList<String>();
                    for(int j = 0 ; j < 5; j++){
                        //第一个参数代表列,第二个参数代表行。(默认起始值都为0)
                        sb.append(sheet.getCell(j, i).getContents()+"\t");
                        
                        list1.add(sheet.getCell(j, i).getContents());
                    }
                    list.add(list1);
                    sb.append("\n");
                }
            }finally{
                if(book != null){
                    book.close();
                }
            }
        } catch (BiffException e) {
            System.err.println(e+"");
        } catch (IOException e) {
            System.err.println(e+"文件读取错误");
        }
return list;
    }

猜你喜欢

转载自blog.csdn.net/selftranscendence/article/details/79363041
今日推荐