zoukankan      html  css  js  c++  java
  • 在JSP中将EXEL文件的数据传入到数据库中

    在jsp中:

    在script中使用函数:

    $(function(){
     
     //var lpyear = document.getElementById("lpyear").value;
     //var lpmonth = document.getElementById("lpmonth").value;
     //var factoryid = document.getElementById("factoryid").value;
     //var url = "&lpyear="+lpyear+"&factoryid="+factoryid+"&lpmonth="+lpmonth;
     $("#file").uploadify({
      "height" : 19,
      "buttonText" : "导入本月数据",
      "buttonClass" : "btn",
      "fileTypeDesc" : "Excel Files",
      "fileTypeExts" : "*.xls",
      "swf" : <select:link page="/Charts/uploadify.swf" />,
      "uploader" : <select:link page="/Budgetimp.do?method=monthimp" />,//+url,
      "onUploadStart" : function(file){
       showWait("正在上传"+file.name+",请稍候...");
      },
      "onUploadSuccess" : function(file, data, response) {
       $('#' + file.id).find('.data').html(' 上传完毕');
       hideWait();
      },
      "onQueueComplete" : function(queueData) {
       show();
      }
     });
    });
    

    在body中写入:

    <td style="text-align: center; 150px;padding-bottom: 1px;">
                   <input type="file" name="file" id="file">
                  </td>
    

    在Java中:

    //导入本月数据
        @SuppressWarnings("unchecked")
     public void monthimp(ActionMapping mapping, ActionForm form,
                HttpServletRequest request,
                HttpServletResponse response) throws Exception{
         try {
          
          InputStream is = null;
             Workbook workbook = null;//创建Workbook对象(这一个对象代表着对应的一个Excel文件)
             
             List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
             for(FileItem item:items){
              if (item.isFormField()){
               request.setAttribute(item.getFieldName(), item.getString());
              }else{
               is = item.getInputStream();
                        workbook = Workbook.getWorkbook(is);
              }
             }
             
             if(workbook != null){
              Sheet sheet = workbook.getSheet(0);//创建Sheet对象,代表着一个工作表
              int row = sheet.getRows();///获取行数
              ArrayList<String> sqls = new ArrayList<String>();
              for(int i=0;i<row;i++){
               String year="",month="",factoryid="",feename="",monthqty="",countqty="",tqqty="";
               
               //year=request.getParameter("lpyear");
               //month=request.getParameter("lpmonth");
               //factoryid=request.getParameter("factoryid");
               Cell cell = sheet.getCell(0, i);//获取第一列所有行的值
               if(cell!=null && cell.getContents() != null){
                year = cell.getContents().trim();
               }
               cell = sheet.getCell(1, i);
               if(cell!=null && cell.getContents() != null){
                month = cell.getContents().trim();
               }
               cell = sheet.getCell(2, i);
               if(cell!=null && cell.getContents() != null){
                factoryid = cell.getContents().trim();
               }
               cell = sheet.getCell(3, i);
               if(cell!=null && cell.getContents() != null){
                 feename= cell.getContents().trim();
               }
               cell = sheet.getCell(4, i);
               if(cell!=null && cell.getContents() != null){
                monthqty = cell.getContents().trim();
               }
               cell = sheet.getCell(5, i);
               if(cell!=null && cell.getContents() != null){
                countqty = cell.getContents().trim();
               }
               cell = sheet.getCell(6, i);
               if(cell!=null && cell.getContents() != null){
                tqqty = cell.getContents().trim();
               }
               
               if(!"".equals(year)&&!"".equals(month)&&!"".equals(factoryid)&&!"".equals(feename))
                 //&&!"".equals(sycomp_id)&&NumberUtils.isNumber(sycomp_id)&&!"".equals(tobasystid)&&NumberUtils.isNumber(factoryid)
                 //&&NumberUtils.isNumber(tobasystid)判断字符串是否是数字
                 //&&!"".equals(monthqty)&&NumberUtils.isNumber(monthqty)&&Double.parseDouble(monthqty)>0
                 //&&!"".equals(countqty)&&NumberUtils.isNumber(countqty)&&Double.parseDouble(countqty)>0
                 //&&!"".equals(tqqty))&&NumberUtils.isNumber(tqqty)&&Double.parseDouble(tqqty)>0)
                 {
                
                if("".equals(monthqty)){monthqty="0";}
                if("".equals(countqty)){countqty="0";}
                if("".equals(tqqty)){tqqty="0";}
                /*
                Double monthqty1=Double.parseDouble(monthqty);
                Double countqty1=Double.parseDouble(countqty);
                Double tqqty1=Double.parseDouble(tqqty);
                */
                System.out.println(year+","+month+","+factoryid+","+feename+","+monthqty+","+countqty+","+tqqty);
                /*
                CallHelper helper =initializeCallHelper("G_logistisfeebymonth", form, request, false);
                      helper.setParam("year", year);
                      helper.setParam("month", month);
                      helper.setParam("factoryid", factoryid);
                      helper.setParam("feename", feename);
                      helper.setParam("monthqty", monthqty);
                      helper.setParam("countqty", countqty);
                      helper.setParam("tqqty", tqqty);
                      helper.setParam("personid", getPersonId(request));
                      helper.execute();
                      
                      StringBuffer exe = new StringBuffer();
                exe.append("merge into l_logistisfeebymonth a ")
                 .append("using ( ")
                 .append("select * from table( ")
                 .append("values('2015','01','1','物流费用合计','5640.00','28333.00','26865.00') ")
                 .append(") as  tab(year,month,factoryid,feename,monthqty,countqty,tqqty) ")
                 .append(") b on a.year = b.year and a.month = b.month and a.factoryid = b.factoryid and a.feename = b.feename")
                 .append("when matched then ")
                 .append("update set a.monthqty = b.monthqty,a.countqty=b.countqty,a.tqqty=b.tqqty ")
                 .append("when not matched then ")
                 .append("insert (year,month,factoryid,feename,monthqty,countqty,tqqty,create_time,create_personid)")
                 .append("values(b.year,b.month,b.factoryid,b.feename,b.monthqty,b.countqty,b.tqqty,current timestamp,"+getPersonId(request)+")");
                sqls.add(exe.toString());
                */
                String sql = "select year,month from l_logistisfeebymonth where year='"+year+"' and month='"+month+"' and factoryid='"+factoryid+"'";
                Executer ex = new Executer();
          SqlRuturn sp=ex.ExecSeletSQL(sql);
          ArrayList<?> list = sp.getResultSet();
          System.out.println(list.size());
          if(list.size()==0){//判断数据是否存在
           StringBuffer exe = new StringBuffer();
                 exe.append("insert into l_logistisfeebymonth(year,month,factoryid,feename,monthqty,countqty,tqqty,create_time,create_personid) ")
                  .append("values('"+year+"','"+month+"','"+factoryid+"','"+feename+"','"+monthqty+"','"+countqty+"','"+tqqty+"',current timestamp,"+getPersonId(request)+")");
                 sqls.add(exe.toString());
          }
                
                /*
                StringBuffer exe1 = new StringBuffer();
                exe1.append("merge into l_logistisfeebymonth a ")
                .append("using ( ")
                .append("select year,month,factoryid,feename,monthqty,countqty,tqqty from l_logistisfeebymonth_temp ")
                .append(") b on a.year = b.year and a.month = b.month and a.factoryid = b.factoryid")
                .append("when matched then ")
                .append("update set a.status=to_char(int(a.status)+1) ")
                .append("when not matched then ")
                .append("insert (year,month,factoryid,feename,monthqty,countqty,tqqty,create_time,create_personid)")
                .append("values(b.year,b.month,b.factoryid,b.feename,b.monthqty,b.countqty,b.tqqty,current timestamp,"+getPersonId(request)+")");
                sqls.add(exe1.toString());
                 */
          
               }
              }
              //sqls.add("update l_logistisfeebymonth set month = '0'||trim(month) where length(trim(month)) < 2");
              OptionUtil.exeSqls(sqls);
             }
         } catch (Exception e) {
       e.printStackTrace();
      }
        }
    
  • 相关阅读:
    浅谈系统调用与库函数
    由代码到可执行程序----浅谈程序的编译链接
    初识信号---进程间的交流
    内部排序总结之----选择类排序(选择、堆)
    僵死进程
    父子进程那些事儿
    fok函数
    面试-css样式
    面试-javascript知识
    面试--数据库
  • 原文地址:https://www.cnblogs.com/sdgf/p/4365484.html
Copyright © 2011-2022 走看看