欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

ASP.NET WebAPI导入CSV

时间:2023-02-20 09:45:58|栏目:.NET代码|点击:

一、前端代码

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

上一篇:c# yield提高代码性能和可读性

栏    目:.NET代码

下一篇:C# 设计模式系列教程-装饰模式

本文标题:ASP.NET WebAPI导入CSV

本文地址:http://www.codeinn.net/misctech/226097.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有