ASP.Net使用Response.Write在excel中创建多个工作表

ASP.Net使用Response.Write在excel中创建多个工作表,asp.net,Asp.net,我通常使用Response.Write将我的报告导出到excel文件 例如 现在我想导出一个包含多个工作表的excel文件。 我怎样才能做到这一点 从技术上讲,这不是导出到excel,但您发送了一个带有错误标题的html,以欺骗浏览器使用excel打开此内容 最好使用xls或/和xlsx,并完全控制excel导出,然后您可以创建新的工作表等 更新:在这个SO答案中,您可以看到返回从DataTable创建的excel文件的ashx处理程序示例: 这段代码与创建Excel文件有什么关系?我的网页上有

我通常使用Response.Write将我的报告导出到excel文件

例如

现在我想导出一个包含多个工作表的excel文件。
我怎样才能做到这一点

从技术上讲,这不是导出到excel,但您发送了一个带有错误标题的html,以欺骗浏览器使用excel打开此内容

最好使用xls或/和xlsx,并完全控制excel导出,然后您可以创建新的工作表等

更新:在这个SO答案中,您可以看到返回从DataTable创建的excel文件的ashx处理程序示例:


这段代码与创建Excel文件有什么关系?我的网页上有一个包含用户列表的表格。每个用户都有自己的个人资料名称、姓氏、年龄等。因此,我想导出表中显示的用户的个人资料。这意味着如果我有userA,B,C,那么在我导出的excel文件中,我会有sheetA,B,C,每个工作表都包含一个特定用户的配置文件。你应该这样写,你的代码不会导出到excel,它会写入HTML表,并在请求中发送错误的内容类型。好的。您在这里看到的代码是由我的asp.net按钮上方的按钮执行的。因此,如果我单击此按钮,我将看到一个弹出对话框,要求我选择要保存文件的位置。是的,我知道,有一个ASP.NET标记。不会有任何对话框或任何类似的内容,我将更新我的答案,以使用EPPlusOkay在excel中导出DataTable为例。谢谢。我只是希望这些库不会降低我的web服务器的速度,因为我已经尝试过Microsoft的API库Microsoft.Office.Interop.Excel,我听到很多人批评它,说它会降低web服务器的速度。他们是对的,MS甚至不支持服务器上的Excel互操作,这些都是纯c库,速度非常快。好的。我喜欢你的第一个解释。玩浏览器的把戏很清楚。谢谢。
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment; filename=MyFile.xls");
Response.ContentType = "application/vnd.ms-excel";
Response.Write("<meta http-equiv=Content-Type content=text/html;charset=UTF-8>");
Response.Write("<table>");
Response.Write("<tr>");
Response.Write("<td>");
Response.Write("Hello");
Response.Write("</td>");
Response.Write("</tr>");
Response.Write("</table>");
Response.End();