欢迎光临
我们一直在努力

ASP.NET WebAPI怎么导出CSV

这篇文章主要介绍“ASP.NET WebAPI怎么导出CSV”,在日常操作中,相信很多人在ASP.NET WebAPI怎么导出CSV问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP.NET WebAPI怎么导出CSV”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、JS脚本

window.open("../Ticket/ExportTicket");

二、后台实现代码

[HttpGet]
public ActionResult ExportTicket(TicketSearch search)
{
  if (search != null)
  {
    search.CurrentPage = 1;
    search.PageSize = 0;
  }
  string[] lstTitles = new string[] { "编号", "标题"};

  int TotalCount = 0;
  List<TicketData> lstTicketData = ListTicketEntityToData(search, out TotalCount);
  List<string[]> lstData = new List<string[]>();
  foreach (TicketData itemData in lstTicketData)
  {
    string[] data = new string[]
  {
  itemData.Barcode,
  itemData.Label,
  itemData.SiteId.ToString(),
  Helper.Htmlhelper.GetSiteInfo(itemData.SiteId),
  itemData.Owner,
  string.IsNullOrEmpty(itemData.CardId) ? "" : itemData.CardId,
  itemData.StartDate == null ? "" : itemData.StartDate.Value.ToString("yyyy-MM-dd HH:mm"),
  itemData.EndDate == null ? "" : itemData.EndDate.Value.ToString("yyyy-MM-dd HH:mm"),
  itemData.IsValid.ToString(),
  itemData.IsUsed.ToString(),
  itemData.CreateTime.ToString("yyyy-MM-dd HH:mm")
  };
  lstData.Add(data);
  }
  string ExportFileName = Helper.ImportExport.ExportData(lstTitles, lstData);
  return File(new System.IO.FileStream(ExportFileName, System.IO.FileMode.Open), "application/octet-stream", "Ticket" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv");
}

public static string ExportData(string[] lstTitles, List<string[]> lstData)
{
  try
  {
    lock (RunningExport)
    {
      string TemplatePath = AppDomain.CurrentDomain.BaseDirectory + "Export";
      string FullFileName = AppDomain.CurrentDomain.BaseDirectory + "Export\\template.csv";
      if (Directory.Exists(TemplatePath))
      {
        if (File.Exists(FullFileName))
        File.Delete(FullFileName);
      }
      else
      {
        Directory.CreateDirectory(TemplatePath);
      }

      if (lstTitles.Length <= 0)
      {
        return null;
      }

      FileStream fs = new FileStream(FullFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
      StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
      string data = "";

      foreach (string itemTitle in lstTitles)
      {
        data += itemTitle + ",";
      }
      sw.WriteLine(data.TrimEnd(','));

      foreach (string[] itemData in lstData)
      {
        data = "";
        foreach (string itemChildData in itemData)
        {
          data += itemChildData + ",";
        }
        sw.WriteLine(data.TrimEnd(','));
      }
      sw.Close();
      fs.Close();
      return FullFileName;
    }
  }
  catch (Exception)
  {
    return null;
  }
}

到此,关于“ASP.NET WebAPI怎么导出CSV”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注云搜网网站,小编会继续努力为大家带来更多实用的文章!

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。