ASP.NET WebAPI导入CSV_实用技巧

一、前端代码

<button type="button" class="btn btn-primary" onclick="InportTicket()">导入</button>  <input id="fileToUpload" type="file" name="upfile" style="display:none;">
/// JS脚本    $("#fileToUpload").click();    $("#fileToUpload").change(function () {    var formData = new FormData();    formData.append("myfile", document.getElementById("fileToUpload").files[0]);      $.ajax({      url: "../Ticket/TicketFileToUpload",      type: 'POST',      cache: false,      processData: false,      contentType: false,      data: formData,      success: function (res) {        alert(res.Message);      },      error: function (data, status, e) {        alert("操作失败!");      }    })  });

二、后台实现代码

[HttpPost]  public ActionResult TicketFileToUpload()  {    try    {      if (Request.Files.Count > 0)      {        HttpPostedFileBase TicketFile = Request.Files[0];        List<string[]> lstData = Helper.ImportExport.InportData(TicketFile.InputStream);        TicketModel ticketope = new TicketModel();          for (int i = 1; i < lstData.Count; i++)        {          string[] itemData = lstData[i];          Ticket entity = ticketope.GetByCode(itemData[0]);          if (entity == null)          {            entity = new Ticket();            entity.Label = itemData[1];            entity.SiteId = int.Parse(itemData[2]);            entity.Owner = itemData[4];            entity.CardId = itemData[5];            entity.StartDate = DateTime.Parse(itemData[6]);            entity.EndDate = DateTime.Parse(itemData[7]);            entity.IsValid = bool.Parse(itemData[8]);            entity.IsUsed = bool.Parse(itemData[9]);            ticketope.Insert(entity);          }        }        return Json(new JsonResultData() { Success = true, Message = "导入数据成功!" });      }      else      {        return Json(new JsonResultData() { Success = false, Message = "找不到导入文件数据!" });      }    }    catch (Exception ex)    {      return Json(new JsonResultData() { Success = false, Message = "导入数据失败!" });    }  }    public static List<string[]> InportData(Stream filestream)  {    lock (RunningInport)    {      List<string[]> lstData = new List<string[]>();      string strLine = "";      bool IsFirst = true;        StreamReader sr = new StreamReader(filestream, Encoding.UTF8);      while ((strLine = sr.ReadLine()) != null)      {        if (IsFirst)        {          string[] strTitles = strLine.Split(',');          lstData.Add(strTitles);        }        else        {          string[] strData = strLine.Split(',');          lstData.Add(strData);        }      }      return lstData;    }  }