webapi 导出CSV文件

/// JS脚本

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

/// Action 代码

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

转载于:https://www.cnblogs.com/wangye520/p/10244324.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值