• JAVA中EXLS导入功能实现


    JAVA中EXLS导入功能实现 - 代码:

     基于SSH框架下导入的流程及解析:

    private File file;
        
        public synchronized File getFile() {
            return file;
        }
        public synchronized void setFile(File file) {
            this.file = file;
        }
    /**
         * 导入exls 并解析
         * @throws Exception
         */
        public void inputfile() throws Exception{
            String text = (String) super.getRequest().getParameter("text");
            int flowid= 1415415;//(String)super.getRequest().getParameter("flowid");
              System.out.println("text>>"+text);
              System.out.println("files>>"+file);
              try {
                  FileInputStream fs = new FileInputStream(file);
                      //             初始化一个工作簿
                HSSFWorkbook hwb = new HSSFWorkbook(fs);
                //             第一张表单
                HSSFSheet sheet = hwb.getSheetAt(0);
                HSSFRow row = null;
                int q=0;
                //遍历改行所有的行,j表示行数 getPhysicalNumberOfRows()表示得到行的总数
                for (int j = 1; j < sheet.getPhysicalNumberOfRows(); j++) {
                row = sheet.getRow(j);
                //获取当前页
                sheet = hwb.getSheetAt(0);
    //            获取首行属性名
                HSSFRow rows = sheet.getRow(0);
                String sql ="(rms.int_id.nextval,";
                String keysql="(int_id,";
                //遍历所有值
                for(int f=0;f<row.getLastCellNum();f++){
                    String stringkey =String.valueOf( rows.getCell(f).getRichStringCellValue());
                    //获取属性英文名
                    String key=queryDataService.queryatr(stringkey,text);
                    keysql +=""+key+",";
                    String state=queryDataService.getAttributestate(text,key);
                    
                    //获取值
                    String value =String.valueOf( row.getCell(f).getRichStringCellValue());
                    
                    //判断数据类型拼装sql
                    if(("integer").equals(state)){
                        
                        sql +=""+value+",";
                        }else if(("datetosecond").equals(state)){
                        value=value.substring(0,value.length()-2);
                        sql +="to_date('"+value+"','yyyy-mm-dd hh24:mi:ss'),";
                        }else{
                            sql +="'"+value+"',";
                        }
                }
                keysql=keysql.substring(0,keysql.length()-1);
                keysql +=")";
                sql=sql.substring(0,sql.length()-1);
                sql +=")";
                
                String addSql=""+keysql+" values "+sql+"";
                q=queryDataService.addReviseData(addSql, text);
                
                }
                if(q>0){
                    super.getResponse().setHeader("Content-type", "text/html;charset=UTF-8");
                    super.getResponse().getWriter().write("{"success":true}");
                }else{
                super.getResponse().setHeader("Content-type", "text/html;charset=UTF-8");
                super.getResponse().getWriter().write("{"success":false}");
                }
              } catch (Exception e) {
               e.printStackTrace();
               super.getResponse().setHeader("Content-type", "text/html;charset=UTF-8");
                super.getResponse().getWriter().write("{"success":false}");
              }
              }
  • 相关阅读:
    数据库连接JOIN
    Java面试金典
    Collections.sort详解
    Java复合优先于继承
    js算术运算符与数据类型转换
    js数组类型
    js对象类型
    CSS-API(CSS编程接口),CSSOM(css对象模型)
    从零开始--单片机十字路口交通灯控制实验
    matlab用双重循环实现费诺编码
  • 原文地址:https://www.cnblogs.com/ggq94/p/9732697.html
Copyright © 2020-2023  润新知