zoukankan      html  css  js  c++  java
  • 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;
      }
    }

  • 相关阅读:
    dijkstra 为什么不能解决负权边?
    Asteroids poj3041
    Dining poj3281
    炮兵阵地
    玉米田Corn Fields
    互不侵犯
    Golang---内存管理(内存分配)
    单例模式-Singleton
    HTTP2.0 学习
    Golang---GMP调度策略
  • 原文地址:https://www.cnblogs.com/wangye520/p/10244324.html
Copyright © 2011-2022 走看看