/// <summary> /// 生成失败的Excel文件 /// </summary> /// <param name="main"></param> public void GenerateFailFile(DataImportIndexInfo main) { // 获取导入失败的数据 var failList = detailDal.Queryable().Where(e => e.Batch == main.Batch && e.ImportState == ImportState.Fail).ToList(); // 导出错误信息的文件,如果文件存在,先删除 ExcelHelper.Export(failList, main.FailImportFile.DiskFileFullName); }
/// <summary> /// 解析Excel文件并将其数据持久化 /// </summary> /// <param name="file"></param> /// <param name="logonInfo"></param> /// <returns></returns> public DataImportIndexView AnalyzFile(FileNameView file, TokenLogonInfo logonInfo) { // 创建导入的主索引数据 DataImportIndexInfo main = new DataImportIndexInfo() { ImportFile = file, Batch = GetBatch(), // file.FileName.Replace($".{file.FileExtName}", ""), DataType = DataType, CreateDate = DateTime.Now, CreaterId = logonInfo.Id, CreaterName = logonInfo.Name, UpdateDate = DateTime.Now, UpdaterId = logonInfo.Id, UpdaterName = logonInfo.Name, ProcessState = ProcessState.Edit, IsDelete = false, Count = 0, Current = 0, IsComplete = false }; // 读取Excel文件中的数据 List <T> excelData = ExcelHelper.Import <T>(main.ImportFile.DiskFileFullName); // 按Excel中的行号排序 excelData = excelData.OrderBy(e => e.RowIndex).ToList(); // 完善提交的数据信息 foreach (var item in excelData) { item.Batch = main.Batch; item.ImportState = ImportState.None; item.CreateDate = DateTime.Now; item.CreaterId = logonInfo.Id; item.CreaterName = logonInfo.Name; item.UpdateDate = DateTime.Now; item.UpdaterId = logonInfo.Id; item.UpdaterName = logonInfo.Name; } //解析导入的数据信息 List <T> importList = AnalyzeImportList(excelData); // 持久化导入索引信息 main.Count = excelData.Count; main.Current = 1; mainDal.InsertObject(main); // 持久化导入数据 detailDal.InsertRange(excelData); // 返回导入的索引查看对象 return(AutoMapper.Mapper.Map <DataImportIndexView>(main)); }