0

我正在使用 ASP.NET C# 中的 Respose.Write 创建一个 excel 文件,我的用户可以将创建的文件保存在他们的系统上,但我想将此 excel 文件保存在我的服务器上,而用户对此一无所知。这怎么可能?这就是我创建 Excel 文件的方式:

        Response.Clear();
    Response.Buffer = true;
    Response.AddHeader("content-disposition", "attachment;filename=" + "res" + ".xls");
    Response.Charset = "";
    Response.ContentType = "application/vnd.ms-excel";

……

    Response.Write("</table>");
    Response.Flush();
    Response.End();

此代码保存创建的 excel 文件客户端 PC,但我想将创建的文件保存在服务器上

4

1 回答 1

2

总体思路是将 Excel 文件的内容写入缓冲区。然后 a) 将其保存到文件中并 b) 将其流式传输到客户端。您将希望在服务器上使用唯一的文件命名约定(例如包括时间戳)。IIS 应用程序池还需要您保存文件的文件夹的写入权限。

StringBuilder excel = new StringBuilder();
excel.Append("<table>");
...
excel.Append("</table>");

// save to file
File.WriteAllText("C:\\blah.xls", excel.ToString());

// output to response
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=" + "res" + ".xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
Response.Write(excel.ToString());
Response.End();
于 2012-12-07T08:05:48.617 回答