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;
 	  }
 	}

到此这篇关于ASP.NET WebAPI导入CSV的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

 

标签

发表评论