ASP.NET WebAPI导入CSV

 更新时间:2022年05月04日 15:36:51   作者:農碼一生  
这篇文章介绍了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的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • asp.net 数据绑定的实例代码

    asp.net 数据绑定的实例代码

    这篇文章介绍了asp.net 数据绑定的实例代码,有需要的朋友可以参考一下
    2013-07-07
  • ASP.NET 上传文件到共享文件夹的示例

    ASP.NET 上传文件到共享文件夹的示例

    这篇文章主要介绍了ASP.NET 上传文件到共享文件夹的示例,帮助大家更好的理解和学习使用.net技术,感兴趣的朋友可以了解下
    2021-04-04
  • 有关于JSON的一些资料

    有关于JSON的一些资料

    有关于JSON的一些资料...
    2007-02-02
  • ASP.NET MVC基础

    ASP.NET MVC基础

    这篇文章主要介绍了ASP.NET MVC基础概念、MVC三大组件之间的相互关系、以及asp.net webform模型和ASP.NET MVC模型的关系等基础知识,是我们学习MVC必不可少的知识点,希望对大家能有所帮助
    2014-10-10
  • ASP.NET 站点地图(sitemap)简明教程

    ASP.NET 站点地图(sitemap)简明教程

    毕业设计折腾了近一个月的时间,也将近完工阶段。下个礼拜六是论文答辩时间,所以今天晚上就抽空想去弄一下站点地图。不怕大侠们笑话,我在以前还真没弄过这些。以前开发过几个项目都是系统类,也就没怎么涉及了
    2012-04-04
  • 使用SNK密钥文件保护你的DLL和代码不被反编译教程

    使用SNK密钥文件保护你的DLL和代码不被反编译教程

    这篇文章主要介绍了使用SNK密钥文件保护你的DLL和代码不被反编译教程, SNK,作为程序后缀的时候,是.net中的强密匙加密文件,需要的朋友可以参考下
    2014-09-09
  • ASP.NET网站管理系统退出 清除浏览器缓存,Session的代码

    ASP.NET网站管理系统退出 清除浏览器缓存,Session的代码

    管理系统退出登陆后,将网址重新输入后还会看到用户登陆后的界面,为了解决这个问题,我采用了以下方法,需要的朋友可以参考下
    2012-05-05
  • 用.NET 2.0压缩/解压功能处理大型数据

    用.NET 2.0压缩/解压功能处理大型数据

    用.NET 2.0压缩/解压功能处理大型数据...
    2006-09-09
  • WCF如何绑定netTcpBinding寄宿到控制台应用程序详解

    WCF如何绑定netTcpBinding寄宿到控制台应用程序详解

    这篇文章主要给大家介绍了关于WCF如何绑定netTcpBinding寄宿到控制台应用程序的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用WCF具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • ASP.NET数据绑定之DataList控件

    ASP.NET数据绑定之DataList控件

    这篇文章主要为大家介绍了ASP.NET数据绑定中的DataList控件,DataList控件以表的形式呈现数据,通过该控件,您可以使用不同的布局来显示数据记录,对DataList控件感兴趣的小伙伴们可以参考一下
    2016-01-01

最新评论