Extjs4.0上傳並解析excel和導出excel

上傳並解析exce代碼:
String path = ServletActionContext.getServletContext().getRealPath(
                                                "image");// 寫到指定路徑
                                System.out.println(path);
                                
                                File file = new File(path);
                                // 判斷指定的路徑下是否有urlNameFileName,如果沒有,自動創建
                                if (!file.exists()) {
                                        file.mkdirs();
                                }
                                
                                try {
                                        FileUtils.copyFile(urlName, new File(file, urlNameFileName));
                                
                                } catch (IOException e) {
                                
                                        e.printStackTrace();
                                }
                                System.out.println("上傳文件的名稱:" + urlName + "上傳的路徑:" + path + "上傳的類型:"
                                                + urlNameContentType);
                                
                                System.out.println(urlNameFileName);
                                String name = urlNameFileName;
                                System.out.println(name);
                                int isa = name.lastIndexOf(".");
                                System.out.println(isa);
                                String sub = name.substring(isa + 1);
                                System.out.println(sub);
                                if (!"xls".equals(sub)) {
                                        HttpServletResponse response = ServletActionContext.getResponse();
                                        response.setContentType("text/html;charset=UTF-8");
                                        response.setCharacterEncoding("UTF-8");
                                        try {
                                                PrintWriter out = response.getWriter();
                                                out
                                                                .println("<script type='text/javascript' language='javascript'>");
                                                out.println("alert('對不起,您選擇的文檔不符合上傳格式,請重新選擇')");
                                                out.println("history.go(-1)");
                                                out.println("</script>");
                                        } catch (IOException e) {
                                                e.printStackTrace();
                                        }
                                        return null;
                                }else 
                                {
                                        InputStream is = new FileInputStream(path + "/" + name);
                                        jxl.Workbook rwb = Workbook.getWorkbook(is);
                                        Sheet sheet = rwb.getSheet(0);
                                        int rowss = sheet.getRows();
                                        int cols = sheet.getColumns();
                                        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                                        SimpleDateFormat df1 = new SimpleDateFormat("hh:mm");
                                        for (int i = 2; i < rowss; i++) {
                                                                Cell mediaName=sheet.getCell(0, i);
                                                                Detectingtable de=new Detectingtable();
                                                                String n=mediaName.getContents();
                                                                de.setMovieName(n);
                                                                System.out.println(de.getMovieName());
                                                                if (null!=n && !"".equals(n)) {
                                                                        List<CrLawusebasic> listbasic=this.crlawusebasicBizImpl.loadLawusebasicByName("name",n);
                                                                          if (null!=listbasic && listbasic.size()>0) {
                                                                                         for (CrLawusebasic crLawusebasic : listbasic) {
                                                                                                 haveList.add(crLawusebasic);
                                                                                        }
                                                                                        
                                                                                }else
                                                                                {
                                                                                        
                                                                                        deteList.add(de);
                                                                                }
                                                                }
                                        }
                                        super.getSession().setAttribute("havelist", haveList);
                                        for (int i = 0; i < haveList.size(); i++) {
                                                 String n=df.format(haveList.get(i).getCpstartdate());
                                                        
                                                 String m=df.format(haveList.get(i).getCpenddate());
                                                haveList.get(i).setCpStartdate(n);
                                                haveList.get(i).setCpEnddate(m);
                                        }
                                        super.getSession().setAttribute("deteList", deteList);
                                        System.out.println(deteList.size());
                                        System.out.println(deteList.get(0).getMovieName());
                                }
                                /*if(null!=haveList){
                                        haveList.clear();
                                }*/
                                super.setMessage("true");
                                return SUCCESS;
                                
                                /* HttpServletResponse response = ServletActionContext.getResponse();   
                                   String msg = "{success:true}";   
                                              response.getWriter().print(msg);   
                                                return NONE;   */

                }
導出代碼:
              List datas = null;                
                
        
                
                datas = haveList;

                // 導出execl操作
                // 創建流對象
                ByteArrayOutputStream os = new ByteArrayOutputStream();
                // 創建excel對象
                WritableWorkbook wbook;

                try {
                        wbook = Workbook.createWorkbook(os);
                        // 標題
                        String tmptitle = "電影信息";
                        // sheet名稱
                        WritableSheet wsheet = wbook.createSheet(tmptitle, 0);
                        // 設置excel中字體的樣式
                        WritableFont wfont = new WritableFont(WritableFont.ARIAL, 16,
                                        WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
                                        Colour.BLACK);
                        // 單元格對象
                        WritableCellFormat wcfFC = new WritableCellFormat(wfont);
                        // wcfFC.setBackground(Colour.AQUA);
                        // 設置排列方式
                        wcfFC.setAlignment(Alignment.CENTRE);
                        // 設置單元的lable
                        wsheet.addCell(new Label(1, 0, tmptitle, wcfFC));
                        // 設置字體樣式
                        wfont = new jxl.write.WritableFont(WritableFont.ARIAL, 14,
                                        WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
                                        Colour.BLACK);
                        // 單元格設置樣式
                        wcfFC = new WritableCellFormat(wfont);
                        wsheet.addCell(new Label(0, 2, "序號"));
                        wsheet.addCell(new Label(1, 2, "電影名稱"));
                        wsheet.addCell(new Label(2, 2, "類型"));
                        wsheet.addCell(new Label(3, 2, "編號"));
                        wsheet.addCell(new Label(4, 2, "音樂名稱"));
                        wsheet.addCell(new Label(5, 2, "權利開始時間"));
                        wsheet.addCell(new Label(6, 2, "權利結束時間"));
                        wsheet.addCell(new Label(7, 2, "權利屬性"));
                        
                        for (int i = 0; i < datas.size(); i++) {
                                
                                CrLawusebasic entity = (CrLawusebasic) datas.get(i);
                                
                                
                                //序號
                                wsheet.addCell(new Label(0, i + 3, entity.getId() + ""));
                                //電影名稱
                                wsheet.addCell(new Label(1, i + 3, entity.getName() + ""));
                                //類型
                                wsheet.addCell(new Label(2, i + 3, entity.getCptype()+ ""));
                                //編號
                                wsheet.addCell(new Label(3, i + 3, entity.getContactnum() + ""));
                                //音樂名稱
                                wsheet.addCell(new Label(4, i + 3, entity.getThething()+ ""));
                                //權利開始日期
                                wsheet.addCell(new Label(5, i + 3, entity.getCpstartdate() + ""));
                                //權利結束日期
                                wsheet.addCell(new Label(6, i + 3, entity.getCpenddate() + ""));
                                //權利屬性
                                wsheet.addCell(new Label(7, i + 3, entity.getCpdesc() + ""));
                        }
                        wbook.write(); // 寫入文件
                        wbook.close();
                        os.close(); // 關閉流
                } catch (Exception e) {
                        e.printStackTrace();
                }
                fileName = "law";
                excelStream = new ByteArrayInputStream(os.toByteArray());
                return SUCCESS;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章