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的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

 

标签

发表评论