我可以确定一个开放的Excel工作簿的临时path吗?

我试图从ASP.NET创build一个Excel文件。 我假设这个文件是在某处临时创build的吗? 我怎样才能得到这个位置?

你用什么来创buildExcel文件? 既然你有一个ASP.NET标签,我希望你不是试图用Office COM Automation做到这一点,它不被支持,相信我是非常非常不可靠的。 看到这个链接从微软http://support.microsoft.com/kb/257757

来自链接的关键信息

Microsoft目前不推荐并不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定的行为和/或在此环境中运行Office时发生死锁。

我build议你看看使用NPOI库,它是非常快速的,在服务器端可靠地工作。 然后,您可以控制文件的生成位置。

如果您正在使用临时path或临时文件,则不必关心它在哪里。 如果你需要关心你应该使用一个具体的文件的具体path。 您也可以使用MemoryStream在没有HardDisk的情况下执行此操作。

编辑:额外的意见,我build议你使用Open XML来创build一个Excel工作表。 如果这是一个选项,让我知道比我会发表更多。

我必须说,我不知道从克里斯泰勒邮报这篇文章,如果我去年发现这一个,它节省了我很多时间。 但是我现在要说的是: 有可能得到运行的服务器端解决scheme,它使用interop,去年我需要它。 但是,这是一个痛苦,直到它的工作,如果有人想尝试在这里有一些build议:

  • 你不应该直接从ASP应用程序中使用interop
  • 你不能使用模拟(它可能会失败)
  • 您将需要一个以System身份运行的服务
  • 你需要一个运行interop的可执行文件
  • 你必须通过服务来pipe理执行(我的意思是pipe理,而不只是开始)

然后再次; 我不build议这样做。 如果你使用任何其他解决scheme。 (MS使用SharePoint2010支持自动化服务)