上传功能

前台:用Uploader插件写好前台

 var uploader1 = null;
    var uploadExcelUrl = '@Url.Action(uploadAction, controllerName)';//后台获取前台导入的文件

function InitUploader() {
        uploader1 = $.fn.cfwinUploader.upload({
            //baseUrl: '/Scripts/cfw.webuploader/',
            postUrl: uploadExcelUrl,
            // 定义按钮
            btnAddFile: $('#uploadExcel'),
            // 设置上传类型,0为图片,1为文件,2为文件和图片
            type: 1,
            // 限制文件个数
            fileNumLimit: 10,
            // 请求参数
            params: { tenatName: '', blobId: '' },
            // 文件限制
            configure: {
                fileMaxSize: 15,
                fileExt: 'xls,xlsx',
            },
            // 回调方法
            callback: {
                // 上传过程中触发
                uploadProgress: function (file, percentage) {
                    $("#" + file.id + " .progress-bar").css('width', (percentage * 100).toFixed(2) + "%");
                },
                uploadComplete: function (file) { //不管成功或者失败,文件上传完成时触发
                },
                uploadSuccess: function (file, data) {
                    uploader1.reset();
                    if (data) {
                        if (data.hasOwnProperty("success")) {
                            if (data.success) {
                                if (data.Result.length > 0) {
                                    data.Result.forEach(function(el, index) {
                                   
                                    });
                                    $.messager.showInfoCenter('系统提示', '上传数据成功!');
                                }
                            } else {
                                $.messager.showErrorCenter('错误消息', data.message);
                            }
                        } else {
                            $.messager.alert('系统提示', "抱歉,你不具有当前操作的权限!", 'error', function () {
                                //window.location.href = window.location.href;
                            });
                        }
                    } else {
                        $.messager.showErrorCenter('错误消息', '上传数据失败!');
                    }
                    $('#datagrid').datagrid('reload');
                    $('#' + file.id).remove();
                },
                uploadError: function (file, reason) {
                    $.messager.showErrorCenter('错误消息', '上传数据失败,失败原因:' + reason);
                },
                onFileQueued: function (file) {
                    uploader1.upload();
                }
            }
        });
    }

 

后台: //导入
        //上传组件
        public JsonResult uploadAction(HttpPostedFileBase file, string detailList = null)
        {
            var json = new JsonSerializer();
            var list = new List<StoreOtherInDetailDTO>();
            if (detailList != null)
            {
                JsonReader reader = new JsonTextReader(new StringReader(detailList));
                list = json.Deserialize<List<StoreOtherInDetailDTO>>(reader);
            }
            return GetServiceJsonResult(() =>
            {
                var result = ScmService.OtherInExcelTemplate(file.InputStream, list);//Service层处理具体代码
                return result;
            });
        }

Service层处理具体代码

 public List<List<RowValue>> GetWorksheetRowListData(int sheetIndex)
        {
            try
            {
                var sheet = Workbook.GetSheetAt(sheetIndex);
                if (sheet == null)
                    return null;
                var result = new List<List<RowValue>>();
                var headerRow = sheet.GetRow(0);
                var cellCount = headerRow.LastCellNum;
                var maxRow = sheet.LastRowNum;
                for (var i = 0; i <= maxRow; i++)
                {
                    var row = sheet.GetRow(i);
                    var emptyRow = true;
                    if (row == null) continue;

                    cellCount = cellCount != 0 ? cellCount : row.LastCellNum;
                    var columns = new List<RowValue>();
                    for (int j = 0; j < cellCount; j++)
                    {
                        var cell = row.GetCell(j);
                        
                        var alphabet = IndexToColumn(j + 1);
                        var headerCell = headerRow.GetCell(j);
                        var headerValue = GetCellValue(headerCell);
                        var columnName = !string.IsNullOrEmpty(headerValue)
                            ? headerValue
                            : i.ToString();
                        var cellValue = string.Empty;
                        if (cell != null)
                        {
                            cellValue = GetCellValue(cell);
                        };
                        if (cellValue != null && !string.IsNullOrEmpty(cellValue.Trim()))
                        {
                            emptyRow = false;
                        }
                        var rowValue = new RowValue
                        {
                            RowId = i,
                            ColumnId = j,
                            CellName = alphabet,
                            ColumnName = columnName,
                            CellValue = cellValue
                        };
                        columns.Add(rowValue);
                    }
                    if (!emptyRow)
                    {
                        result.Add(columns);
                    }
                }
                return result;
            }
            catch (Exception ex)
            {
                if (Workbook != null)
                {
                    Workbook.Close();
                    Workbook = null;
                }
                LogUtil.LogError("Couldn't get the row's List<RowValue> data by sheet name.", ex.Message + Environment.NewLine + ex.StackTrace);
                return null;
            }
        }

 

posted @ 2017-09-08 10:22  水上。。。  阅读(245)  评论(0编辑  收藏  举报