Extjs4.0上传并解析excel和导出excel

来源:互联网 发布:哪些数据库 触发器 编辑:程序博客网 时间:2024/06/05 18:08

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;

java导出Excel例子

//在service层写的,在action直接调用此方法就行了

//导出Excel 
public boolean exportExcel(HttpServletResponse response,List<cityinfo> list) 
    {   
try 

OutputStream os = response.getOutputStream();// 取得输出流   
        response.reset();// 清空输出流   
        response.setHeader("Content-disposition", "attachment; filename=fine.xls");// 设定输出文件头   
        response.setContentType("application/msexcel");// 定义输出类型 
        
        WritableWorkbook wbook = Workbook.createWorkbook(os); // 建立excel文件   
        String tmptitle = "财务报表"; // 标题   
        WritableSheet wsheet = wbook.createSheet(tmptitle, 0); // sheet名称  
        
// 设置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); 
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, "城市名"));  

for(int i=0;i<list.size();i++)   <br="">{   
    wsheet.addCell(new Label(0, i+3, list.get(i).getCityid()));   //数据库的城市代码字段
    wsheet.addCell(new Label(1, i+3, list.get(i).getName()));  //数据库的城市名字段

    
}           
// 主体内容生成结束           
wbook.write(); // 写入文件   
wbook.close();  
os.close(); // 关闭流
return true; 

catch(Exception ex) 

ex.printStackTrace(); 
return false; 

    } 

 


原创粉丝点击