在ASP.NET MVC应用程序中将查询结果导出到Excel

时间:2012-10-04 09:59:08

标签: asp.net-mvc export-to-excel

我在c#中有asp.net MVC应用程序并且我获得了查询结果(来自Entity Framework),我需要将数据放在用户可以下载的Excel表格中。所以这就是我想要做的,我想知道如何将每行数据写入excel表?我也应该采取任何其他方法。

var certs = CertificateService.ReadAllSentCertificates();
                Application excel = new Application();
                string filePath = "C:/ToDoList/SentStats_" + DateTime.Now.ToString() + ".xls";

                Workbook mybook = excel.Workbooks.Add();
                excel.Visible = true;
                try
                {
                    mybook.Activate();
                    Worksheet mysheet = mybook.Worksheets.Add();

                     foreach (var x in certs)
                    {
                        // How to write each row in excel??

                    }
                   //mybook.SaveAs(Filename: filepath);
                    mybook.Save();
                }
                catch (Exception ex)
                {
                }
                finally
                {
                    mybook.Close();
                }

1 个答案:

答案 0 :(得分:2)

不要在Web应用程序中使用Office互操作。 MS Office从未设计为在服务器上运行。如果要构建Excel工作表,可以在服务器上使用OpenXML

作为替代方案,您可以在<table>中返回包含结果的视图,并使用application/vnd.ms-excel Content-Type响应标头提供此视图。与使用OpenXML SDK相比,您可以更少地控制生成的工作表的格式,从而为您提供完全控制。