【问题标题】:How to export data to excel using mvc without using third party control如何在不使用第三方控件的情况下使用 mvc 将数据导出到 excel
【发布时间】:2010-09-29 12:02:37
【问题描述】:

我想在 asp.net 中以 .xls 和 .xlsx 格式将数据导出到 excel MVC 不使用任何第三方控件。

我尝试使用以下代码,但它不支持 .xlsx 格式。

Response.AddHeader("Content-Disposition", "attachment; 
filename=test.xlsx");
Response.ContentType = "application/ms-excel";
Response.Write(sw.ToString());
Response.End();

请给我解决方案。

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    对于你的台词也许这行得通,但我不确定你想做什么。

    Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
    Response.AppendHeader("Content-Disposition", "attachment; filename=test.xlsx")
    Response.Write(sw.ToString())
    Response.End()
    

    【讨论】:

      【解决方案2】:

      除了@amurra 描述的Open XML SDK 2.0,你还可以试试OpenExcel。这是一个很棒的图书馆,而且速度很快。

      一个快速而肮脏的选择是将所有数据放在一个表中,然后将该表仅写入带有您已经尝试过的标头的响应流,例如:

      Response.AddHeader("Content-Disposition", "attachment; filename=test.xlsx"); 
      Response.ContentType = "application/ms-excel"; 
       //NOW WRITE TABLE
      Response.Write("<table><tr><td>SrNo</td></tr><tr><td>1</td></tr></table>"); 
      Response.End();
      

      我没有使用过这个 hack,但已经看到它在某些应用程序中使用过。打开时Excel会提示用户数据不是excel格式,但打开成功。

      【讨论】:

        【解决方案3】:

        您应该使用 Open XML SDK 2.0 来完成该任务,因为它是 Microsoft 支持的创建 Office 文档的方式。

        另一种 hacky 方法是创建局部视图并将 html 导出到 Excel。这将为数据提供只读视图,因为它不是正确的 excel 格式,但在您不想花时间编写 Open XML 时有效。

        .xlsx 的正确 MIMEConentType 是 "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",.xls 的正确 MIMEConentType 是 "application/vnd.ms-excel"

        【讨论】:

          猜你喜欢
          • 2017-06-27
          • 1970-01-01
          • 1970-01-01
          • 2017-06-27
          • 1970-01-01
          • 2021-09-29
          • 1970-01-01
          • 1970-01-01
          • 2016-07-18
          相关资源
          最近更新 更多