Newer
Older
EMS-WEB-3.0 / src / main / webapp / s / app / ems / ems-marker-opt.js
wxn on 9 Aug 2016 6 KB first commit
/**
 * Created by lenovo on 2016/5/18.
 */
var EmsMarkerOpt = function () {
    return {
        init: function () {
            $('#excel_import').live('click', function (e) {
//                var filePath = $("#excelFile").val();
//                if (null != filePath && "" != filePath) {
//                    if (filePath.indexOf(".xls") != filePath.length - 4 && filePath.indexOf(".xls") != filePath.length - 5) {
//                        alert("请选择*.xls或*.xlsx文件");
//                        return;
//                    }
//                    importByExcel($("#excelFile").val());
////                    //刷新列表页面就行了
//                    location.href = $("#context").val() + "/content/ems/ems.jsp";
//                }

                $("#excelForm").ajaxSubmit({
                    type:"post",
                    url:$("#context").val() +"/marker/excelMarkers.do",
                    success:function(data){
                        if(data.success){
                            alert("上传成功");
                        }else{
                            alert(data.message);
                        }

                    },
                    error:function(){
                        alert("上传失败");
                    }
                });

            });

            function importByExcel(filePath) {
                //创建操作EXCEL应用程序的实例
                try {
                    var excelObject = new ActiveXObject("Excel.application");
                    //打开指定路径的excel文件
                    var excelFile = excelObject.Workbooks.open(filePath);
                    //操作第一个sheet(从一开始,而非零)
                    excelFile.worksheets(1).select();
                    var excelSheet = excelFile.ActiveSheet;
                    //文件总行数
                    var totalRows = excelSheet.usedrange.rows.count;
                } catch (e) {
                }
                try {
                    //获取属性index
                    var userId = getPropertyIndex(excelSheet, "用户ID");
                    var markerNo = getPropertyIndex(excelSheet, "标识器编号");
                    var markerName = getPropertyIndex(excelSheet, "标识器名称");
                    var area = getPropertyIndex(excelSheet, "三级区域");
                    var line = getPropertyIndex(excelSheet, "三级线路");
                    var objType = getPropertyIndex(excelSheet, "类型");
                    var depth = getPropertyIndex(excelSheet, "埋深");
                    var mileage1 = getPropertyIndex(excelSheet, "里程1");
                    var mileage2 = getPropertyIndex(excelSheet, "里程2");
                    var deployTime = getPropertyIndex(excelSheet, "安装时间");
                    var deployUser = getPropertyIndex(excelSheet, "安装人员");
                    var belongComp = getPropertyIndex(excelSheet, "权属单位");
                    var longitudeIndex = getPropertyIndex(excelSheet, "经度");
                    var latitudeIndex = getPropertyIndex(excelSheet, "纬度");
                    var remark = getPropertyIndex(excelSheet, "备注");

                    var markerList = new Array();

                    //第一行是标题,从2开始
                    for (var i = 2; i <= totalRows; i++) {
                        var markerDto = {};
                        // 1.读取excel中的属性信息
                        markerDto.userId = getNotNullNumberValue(excelSheet.Cells(i, userId).value);
                        markerDto.markerId = getNotNullValue(excelSheet.Cells(i, markerNo).value);
                        markerDto.markerName = getNotNullValue(excelSheet.Cells(i, markerName).value);
                        markerDto.featureId = getNotNullNumberValue(excelSheet.Cells(i, area).value);
                        markerDto.lineId = getNotNullNumberValue(excelSheet.Cells(i, line).value);
                        markerDto.markerObjectType = getNotNullValue(excelSheet.Cells(i, objType).value);
                        markerDto.depth = getNotNullNumberValue(excelSheet.Cells(i, depth).value);
                        markerDto.mileage = getNotNullValue(excelSheet.Cells(i, mileage1).value);
                        markerDto.mileage2 = getNotNullValue(excelSheet.Cells(i, mileage2).value);
                        markerDto.createTime = getNotNullValue(excelSheet.Cells(i, deployTime).value);
                        markerDto.creator = getNotNullValue(excelSheet.Cells(i, deployUser).value);
                        markerDto.ownerComp = getNotNullValue(excelSheet.Cells(i, deployUser).value);
                        markerDto.longitude = getNotNullValue(excelSheet.Cells(i, longitudeIndex).value);
                        markerDto.latitude = getNotNullValue(excelSheet.Cells(i, latitudeIndex).value);
                        markerDto.memo = getNotNullValue(excelSheet.Cells(i, remark).value);
                        markerList.push(markerDto);
                    }
                    // 2.导入到数据库
                    $.ajax({
                        type: "POST",
                        async: false,
                        url: $("#context").val() + "/marker/batchSave.do",
                        data: {"markers": JSON.stringify(markerList)},
                        success: function (result) {
                            var result = eval("(" + result + ")");
                            if (!result.success) {
                                alert("标识器入库失败," + result.msg);
                            } else {
                                alert("入库完成");
                            }

                        }
                    });


                } catch (e) {
                }
                //退出操作excel的实例对象
                excelObject.Application.Quit();
                //手动调用垃圾收集器
                CollectGarbage();
            };

            function getPropertyIndex(excelSheet, propertyName) {
                var index = 1;
                while (true) {
                    var value = excelSheet.Cells(1, index).value;
                    if (!value) {
                        return -1;
                    } else if (value == propertyName) {
                        return index;
                    }
                    index++;
                }
            }

            function getNotNullValue(inValue) {
                var outValue = "";
                if (typeof inValue == "string") {
                    inValue = inValue.replace(/\r\n/, "");
                }
                if (null != inValue) {
                    outValue = inValue;
                }
                return outValue;
            }

            function getNotNullNumberValue(inValue) {
                return inValue ? inValue : -1;
            }

        }
    }

}();