Excel Interop 在主机服务器上而不是在本地计算机上保存文件

Excel Interop saving file on host server instead of local machine

该项目是一个 ASP.NET 应用程序,用于从数据库中获取调查评估并导出到 excel。

我正在使用 excel 互操作来生成 excel 中的报告。后来我才知道微软不支持使用互操作库的服务器端自动化,但我最初选择它是因为 closed/openxml 不支持 excel 图形和图表。

我在服务器上部署了我的应用程序,一切正常 运行 除了生成的文件保存在服务器上,而不是保存在调用应用程序的本地计算机上。

string foldername = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\Downloads";

Xlworkbook.SaveAs(""+foldername+"\Evaluation.xlsx",51, missing, missing, missing,missing, Excel.XlSaveAsAccessMode.noxlchange,missing, missing, missing, missing, missing);

将文件保存在C:\User\Asp.Net v4.0\Downloads\ --- 在服务器上 而不是 C:\User\Username\Downloads\ --- 在本地机器上

注意:Asp.Netv4.0 是部署应用程序的 IIS 池的名称。

代码在服务器上运行,而不是在客户端上运行,因此文件保存在服务器上。

使用支持以 Excel 文件格式创建图形的库,而不使用 excel 来解决互操作问题(除了许可之外,您真的不希望在服务器上出现这种情况)。

然后让用户从 Web 应用程序下载文件。