[HttpPost, Route("api/Workstage/ImportFile")] public object ImportFile() { var filelist = HttpContext.Current.Request.Files; var models = new List<DModel>(); var path = HttpContext.Current.Server.MapPath("/ImportConfig/ModelConfig.xml"); var xr = XMLHelper.ReadToHashtable(path);//读取Excel的字段对应干系,代码的实体字段和Excel中的字段对应,在后头的Excel的值读取尚有数据库实体赋值用获得。 try { if (filelist.Count > 0) { for (var i = 0; i < filelist.Count; i++) { var file = filelist[i]; var fileName = file.FileName; var fn = fileName.Split('\\'); if (fn.Length > 1) { fileName = fn[fn.Length - 1]; } DataTable dataTable = null; var fs = fileName.Split('.'); if (fs.Length > 1) { dataTable = ExcelHelp.ExcelToTableForXLSX(file.InputStream, xr.ImportHashtable); //excel转成datatable } models = dataTable.ToDataList<DWorkstage>(); //datatable转成list } } var succe = new List<DModel>();//需要插入的数据列表 var exportList = new List<DModel>();//需要导出给用户的失败数据列表 // 做一些数据逻辑处理惩罚,把处理惩罚好的数据加到succe列表中 if (succe.Any()) { SqlBulkCopyHelper.BulkInsertData(succe, "DModel"); } var url = string.Empty; if (exportList.Any()) { var extDt = exportList.ToDataTable(xr.ExportHashtable);//把数据库中的字段转成Excel中需要展示的字段,并生存到datatable中。 url = SaveFile(extDt, "失败信息.xlsx");//把datatable生存到当地处事器可能文件处事器中,然后把文件下载地点返回给前端。 } var list = new { failed = faile.Take(100).ToList(), failedCount = faile.Count }; //数据太多的话,欣赏器会瓦解 var json = new { list, msg = "添加乐成", url }; return json; } catch (Exception ex) { var json = new { msg = "添加失败", ex.Message, ex }; return json; } }
详细的xml文件详细的节点可以本身定名。
<?xml version="1.0" encoding="utf-8" ?> <TableConfig> <!--商品名称--> <ColumnName Enabled="true" > <DbProperty>ProductName</DbProperty> <ExcelProperty>商品名称</ExcelProperty> </ColumnName> <!--原因,导出失败列表时用到的字段,导入时用不到--> <ColumnName Enabled="true" > <DbProperty>SourceCode</DbProperty> <ExcelProperty>原因</ExcelProperty> </ColumnName> <!--建设时间--> <ColumnName Enabled="true" > <DbProperty>CreateTime</DbProperty> <ExcelProperty>建设时间</ExcelProperty> </ColumnName> <!--更新时间--> <ColumnName Enabled="true" > <DbProperty>UpdateTime</DbProperty> <ExcelProperty>更新时间</ExcelProperty> </ColumnName> </TableConfig>
详细的Excel模板以上就是ASP.NET 上传文件导入Excel的示例的具体内容,更多关于ASP.NET 上传文件导入Excel的资料请存眷剧本之家其它相关文章!
您大概感乐趣的文章: