我在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();
}
答案 0 :(得分:2)
不要在Web应用程序中使用Office互操作。 MS Office从未设计为在服务器上运行。如果要构建Excel工作表,可以在服务器上使用OpenXML。
作为替代方案,您可以在<table>
中返回包含结果的视图,并使用application/vnd.ms-excel
Content-Type
响应标头提供此视图。与使用OpenXML SDK相比,您可以更少地控制生成的工作表的格式,从而为您提供完全控制。