【问题标题】:How to run this code from a Controller?如何从控制器运行此代码?
【发布时间】:2010-10-26 18:19:18
【问题描述】:

我找到了将数据表导出到 excel 的代码,但我不知道如何让控制器返回结果。

有什么建议吗?这是代码

dt = city.GetAllCity();//your datatable 
    string attachment = "attachment; filename=city.xls"; 
    Response.ClearContent(); 
    Response.AddHeader("content-disposition", attachment); 
    Response.ContentType = "application/vnd.ms-excel"; 
    string tab = ""; 
    foreach (DataColumn dc in dt.Columns) 
    { 
        Response.Write(tab + dc.ColumnName); 
        tab = "\t"; 
    } 
    Response.Write("\n"); 
    int i; 
    foreach (DataRow dr in dt.Rows) 
    { 
        tab = ""; 
        for (i = 0; i < dt.Columns.Count; i++) 
        { 
            Response.Write(tab + dr[i].ToString()); 
            tab = "\t"; 
        } 
        Response.Write("\n"); 
    } 
    Response.End(); 

【问题讨论】:

    标签: asp.net-mvc-2


    【解决方案1】:

    你可以直接返回FileStreamResult:

    public ActionResult DownloadCities()
    {
        dt = city.GetAllCity();//your datatable 
        string attachment = "attachment; filename=city.xls";
    
        var writer = new StreamWriter(new MemoryStream());
    
        string tab = "";
        foreach (DataColumn dc in dt.Columns)
        {
            writer.Write(tab + dc.ColumnName);
            tab = "\t";
        }
        writer.Write("\n");
        int i;
        foreach (DataRow dr in dt.Rows)
        {
            tab = "";
            for (i = 0; i < dt.Columns.Count; i++)
            {
                writer.Write(tab + dr[i]);
                tab = "\t";
            }
            writer.Write("\n");
        }
    
        return File(writer.BaseStream, "application/vnd.ms-excel", "city.xls");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-25
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多