Excel数据处理
来源:互联网 发布:淘宝什么值得买 编辑:程序博客网 时间:2024/05/21 11:09
1、任务需求
2、核心代码
<div class="sd_main_item sd_fms"> <div class="tbl_nav sd_fms_nav" style="padding-left:15px;"> <a href="#fam_file_upload" class="btn-fam-ipmort"><div class="btn btn-default">导入</div></a> </div></div> <div class="col-md-12"> <input type="checkbox" cref="on_line"></input> 列统一设置 <hr/> <div class="pane_on_line"> </div> </div> <div class="col-md-12" style="text-align:left;padding-left:100px;margin-top:20px;"> <span class="btn btn-success btn_save" rel="107">保存</span> </div>
<div id="fam_file_upload" style="display:none;"> <div class="file-upload-title"> 导入 <span class="file_upload_title" style="color:#0c6">进线和踩线</span> 的数据 </div> <div id="fam_1_file_upload" class="file-upload"> <div class="file-upload-click dz-default dz-message"> <i class=" icon-upload"></i> 点击这里上传数据 </div> </div> <div class="file-upload-close"> <button class="btn btn-info btn_file_upload_close">Close</button> </div> <div class="file-upload-note"> <span class="label label-danger">NOTE:</span> 该功能目前仅支持 Chrome, Firefox & Internet Explorer 10 浏览器. </div></div>
<script> var baseparam = { schId: null, yearIn:null }; function getSchool(){ baseparam.schId = $('.sch_name').attr('schid'); } function init_top_events(){ //初始化yearIn选择栏 function select_yearIn_event(){ var ny = moment().year(); for( var i = 6; i > 0; i--){ $('.yearIn').append('<option value="'+(ny-i)+'">'+(ny-i)+'</option>'); } for( var i = 0; i < 6; i++){ if( (ny+i) == ny ){ $('.yearIn').append('<option value="'+(ny+i)+'" selected>'+(ny+i)+'</option>'); baseparam.yearIn = ((ny+i)+"").substring(2,4); }else $('.yearIn').append('<option value="'+(ny+i)+'">'+(ny+i)+'</option>'); } $('.yearIn').on( 'change', function(e){ $('.as_result input[name="yearIn"]').val( $('.yearIn option:selected').val().substring(2,4) ); baseparam.yearIn = $('.yearIn option:selected').val().substring(2,4); GET.changeBCO(); }); } select_yearIn_event(); } var $= jQuery.noConflict(); var stusUploader = null; function init_upload(){ getSchool(); init_top_events(); var schId = baseparam.schId; var yearIn = baseparam.yearIn; CUBE.uploadOption.maxFiles = 1; CUBE.uploadOption.url = '../conf/upload/noline'+'/'+schId+'/'+yearIn; stusUploader = new Dropzone("#fam_1_file_upload", CUBE.uploadOption); } function handler_upload(){ function beforeShow(){ CUBE.alarmTipClose(); //关闭nav // $('.system_school_import').show().hide(); CUBE.lockMainWindow( $( window.parent.document.body)); } function afterClose(){ // $('.school_set_url_error').html('');//清理提示信息 // $('.school_set_contact_error').html('');//清理提示信息 CUBE.unLockMainWindow( $( window.parent.document.body)); } $('.sd_fms_nav').delegate(".btn-fam-ipmort", "click", function(){ CUBE.fancyDialogOption.beforeShow = beforeShow; CUBE.fancyDialogOption.afterClose = afterClose; //呈现上传窗口 $('.btn-fam-ipmort').fancybox( CUBE.fancyDialogOption); stusUploader.removeAllFiles(true); }) $('.sd_fms_nav').delegate(".btn-fam-phone-ipmort", "click", function(){ CUBE.fancyDialogOption.beforeShow = beforeShow; CUBE.fancyDialogOption.afterClose = afterClose; //呈现上传窗口 $('.btn-fam-phone-ipmort').fancybox( CUBE.fancyDialogOption); ztUploader.removeAllFiles(true); }) $(".file-upload-close").delegate(".btn_file_upload_close", "click", function(){ $.fancybox.close(); }) } $(document).ready(function(){ initView.init(); handler_upload(); init_upload(); }); </script>
<script id="pane_on_line" type="text/template"> <div class="on_line_tbl" id="<%=sortAlias%>" style=""> <table width="100%" key="<%=sortAlias%>" role="on_line"> <tbody> <td style="min-width:80px;background-color:white;height:30px;font-size:20px;"> <%=sortAlias%> </td> <%_.each( data, function(d){%> <tr key="<%=d.xkAlias%>" xkid="<%=d.xkId>100?d.xkId-100:d.xkId%>" count="<%=d.count%>"> <td style="min-width:80px;background-color:#ddd;"> <%=d.xkName%> <span class="btn_ol_add"><i class="icon-plus-sign"></i></span> </td> <%var i = 0;%> <%_.each( d.data, function(dd){%> <td> <span class="btn_ol_delete"><i class="icon-remove-sign"></i></span> <input class="form-control notempty" placeholder=",,,," value="<%=dd%>" type="text" name="line_<%=i%>" style="width:180px;margin-left: 30px;" /> </td> <%i++;%> <%})%> </tr> <%})%> </tbody> </table> </div> </script>
js
function renderOn_line(){ if( bco_school.on_line == undefined) return false; var keys = _.keys(bco_school.on_line); var _datas = []; _.each( keys, function(key){ if( key.indexOf('_lk') != -1 || key.indexOf('_wk') != -1 || key.indexOf('_qk') != -1){ var d = _.result( bco_school.on_line, key ); var _keys = _.keys(d); var _data = [], r = {}; _.each( _keys, function(_key){ var _d = _.result( d, _key); var _data_ = []; _.each(_d, function(_d_){ var v = _d_.line_name+','+_d_.line_type+','+_d_.line_std+','+_d_.line_up+','+_d_.line_down; _data_.push(v); }); var alias = _key.split('_')[1], xkName = utils.getXKName(alias), xkId = utils.getXKId(alias), rd={}; _.extend( rd, {'data': _data_}); _.extend( rd, {'xkName': xkName}); _.extend( rd, {'xkId': (xkId<=10 && xkId>0)?xkId+100: xkId}); _.extend( rd, {'xkAlias': _key}); _.extend( rd, {'count': _data_.length}); _data.push(rd); }); _data = _.sortBy(_data, 'xkId'); var sortId = utils.getSortId( key.split('_')[1] ); _.extend( r, {'data': _data}); if(key == 'ol_wk'){ _.extend( r, {'sortAlias': '文科'}); }else if(key == 'ol_lk'){ _.extend( r, {'sortAlias': '理科'}); }else if(key == 'ol_qk'){ _.extend( r, {'sortAlias': '全科'}); } _.extend( r, {'sortId': sortId} ); if( sortId != -1 ) _datas.push(r); } }); if( _datas.length == 0){ $('.pane_on_line').append('未查询到全科配置信息'); return false; } CUBE.renderList( _datas, $('.pane_on_line'), $('#pane_on_line'), $('.pane_on_line'), true, function(){ btn_event_delete(); btn_event_add(); } );
后台逻辑代码
@RequestMapping(value = "/upload/noline/{schId}/{yearIn}", method = RequestMethod.POST)public @ResponseBody JSONObject uploadonLine(@PathVariable("schId") Long schId,@PathVariable("yearIn")Integer yearIn,HttpServletRequest request, HttpServletResponse response )throws ServletException, IOException {JSONObject jo = null;response.setContentType("application/json");response.setCharacterEncoding("utf-8");JSONObject param = new JSONObject();String sch = schId.toString();String year = yearIn.toString();param.put("schId", schId);param.put("yearIn", yearIn);try {ReadExcel readExcel = new ReadExcelImpl();ExcelCheckCallback<JSONObject> callback = new OnLineCheckCallback();List<JSONObject> list = readExcel.readExcel(request, callback, param );if(list != null && !list.isEmpty())jo = list.get(0);JSONArray arr = jo.getJSONArray("Sheet1");JSONObject obj1 = new JSONObject();JSONObject obj2 = new JSONObject();JSONObject obj3 = new JSONObject();JSONObject obj4 = new JSONObject();int j = 0;int k = 1;int x = 1;for(int i = 1; i < arr.size(); i++){ArrayList arr1 = (ArrayList)arr.get(i);String v1 = arr1.get(0).toString();String v2 = arr1.get(1).toString();String v3 = arr1.get(2).toString();String v4 = arr1.get(3).toString();String v5 = arr1.get(4).toString();String v6 = arr1.get(5).toString();String v7 = arr1.get(6).toString();if(v1 != "" && v2 != "" && v3 != "" && i == 1){obj1 = new JSONObject();obj2 = new JSONObject();obj3 = new JSONObject();obj4 = new JSONObject();obj1.put("line_"+j, v3+","+v4+","+v5+","+v6+","+v7);obj2.put(v2, obj1);obj3.put(v1, obj2);j++;obj4.put("on_line", obj3);}else if(v1 == "" && v2 == "" ){obj1.put("line_"+j, v3+","+v4+","+v5+","+v6+","+v7);j++;v2 = ((ArrayList)arr.get(i-k)).get(1).toString();k++;obj2.put(v2, obj1);v1 = ((ArrayList)arr.get(i-x)).get(0).toString();x++;obj3.put(v1, obj2);obj4.put("on_line", obj3);}else if(v1 == "" && v2 != ""){j = 0;obj1 = new JSONObject();obj1.put("line_"+j, v3+","+v4+","+v5+","+v6+","+v7);j++;k = 1;obj2.put(v2, obj1);v1 = ((ArrayList)arr.get(i-x)).get(0).toString();x++;obj3.put(v1, obj2);obj4.put("on_line", obj3);}else if(v1 != "" && v2 != "" && v3 != "" && i != 1){obj1 = new JSONObject();obj2 = new JSONObject();j=0;k=1;x=1;obj1.put("line_"+j, v3+","+v4+","+v5+","+v6+","+v7);j++;obj2.put(v2, obj1);obj3.put(v1, obj2);obj4.put("on_line", obj3);}}obj4.put("yearIn", year);obj4.put("schId", sch);System.out.println("fyq: "+obj4);ISchAnlyConfSettingBO ope = new SchAnlyConfSettingBOImpl();ope.setOn_LineConf( obj4);} catch (FileUploadException e) {e.printStackTrace();response.setStatus( 500);return getErrorResult( e.getMessage() );} catch (ExcelCheckException e) {e.printStackTrace();response.setStatus( 500);return getErrorResult( e.getExceptionInfo() );} catch (Exception e) {e.printStackTrace();response.setStatus( 500);return getErrorResult( "文件内容无法识别,请检查是否为符合要求的文件" );}return getSuccessResult(null);}
/** * * @Title: setOn_LineConf * @Description: 进线、踩线配置 * @param cjo * @return * @throws Exception 参数 * @return JSONObject * @throws */public JSONObject setOn_LineConf( JSONObject cjo ) throws Exception{System.out.println(cjo);String url = DTC_BCO_URL_BASE + PropertiesConfigUtils.getString("url.bco.107");Long schId = cjo.getLong("schId");Integer yearIn = cjo.getInteger("yearIn");url = url + schId+"/"+yearIn+"/";//PostJSONObject pjo =cjo.getJSONObject("on_line");Set<String> keys = pjo.keySet();JSONObject _rjo = new JSONObject();//脱第一层for( String key : keys ){JSONObject child = pjo.getJSONObject(key);Set<String> ckeys = child.keySet();JSONObject _cjo = new JSONObject();//脱第二层for( String ckey : ckeys ){JSONObject shild = child.getJSONObject(ckey);Set<String> skeys = shild.keySet();JSONArray sjarr = new JSONArray();//处理 {"line_0":"前10%,1,0.1,-1,-1","line_1":"前30%,1,0.3,-1,-1","line_2":"前60%,1,0.6,0.05,0.1"}这个对象for( String skey: skeys){String str = shild.getString(skey);if( str == null || str.isEmpty() ) continue;if( str.indexOf(",") == -1) continue;JSONObject sjo = new JSONObject();sjo.put( "line_name", str.split("\\,")[0]);sjo.put( "line_type", str.split("\\,")[1]==null?-1: new Integer( str.split("\\,")[1]) );sjo.put( "line_std", str.split("\\,")[2]==null?-1: new Double( str.split("\\,")[2]) );sjo.put( "line_up", str.split("\\,")[3]==null?-1:new Double( str.split("\\,")[3]) );sjo.put( "line_down", str.split("\\,")[4]==null?-1:new Double( str.split("\\,")[4]) );sjarr.add( sjo);}_cjo.put(ckey, sjarr);}_rjo.put(key, _cjo);}HttpClientUtil instance = HttpClientUtil.getInstance("UTF-8", Constants.HTTPCLIENT_TIMEOUT);String result = instance.postResponseBodyAsString(url, _rjo.toJSONString() );System.out.println("_rjo.toJSONString()"+ _rjo.toJSONString());JSONObject rjo = new JSONObject();rjo = JSON.parseObject( result);String r = "";if(rjo.getIntValue("code") != 0 ){if(r.length() > 0 ) r = r+", "+rjo.getString("data") ;else r = rjo.getString("data") ;}if( r.length() == 0)return getSuccessResult(new JSONObject());elsereturn getErrorResult(r);}
阅读全文
1 0
- Excel数据处理
- excel数据处理
- excel 数据处理
- Excel数据处理
- Excel数据处理与分析
- EXCEL 简单数据处理
- excel数据处理实用操作
- Excel+GridView打造高级数据处理
- 将excel中多行多列数据处理成多行双列
- 《深入浅出Excel VBA数据处理》写作计划
- 用Excel+VBA+SQL Server进行数据处理
- 用Excel+VBA+SQL Server进行数据处理
- excel表海量数据处理方法探索
- java大数据处理-大量数据到Excel
- java大数据处理-大量数据到Excel
- java大数据处理-大量数据到Excel
- java大数据处理-大量数据到Excel
- excel 多次筛选后的range数据处理
- 617. Merge Two Binary Trees; Difficulty:Easy
- 标准模板库STL学习总结
- 第18章 (第二部分)类加载器机制
- 未操作的变量值自动修改--强制类型转换导致变量覆盖
- doGet和doPost的区别
- Excel数据处理
- switch case支持的类型
- spark 运行原理
- EasyUI Datagrid 鼠标悬停显示单元格内容
- JAVA解决XSS漏洞
- 顺序表应用6:有序顺序表查询
- RxJava2详解(三)--调度器
- kNN算法笔记
- hoj2713(最小点权覆盖)