我可以确定打开excel工作簿的临时路径吗?

时间:2011-04-28 10:57:56

标签: c# asp.net excel

我正在尝试从ASP.NET创建一个excel文件。我假设这个文件是临时创建的吗?我怎样才能获得这个位置?

2 个答案:

答案 0 :(得分:3)

您在使用什么来创建Excel文件?由于您有一个ASP.NET标记,我希望您不要尝试使用Office COM自动化,它不受支持并相信我非常非常不可靠。请参阅Microsoft http://support.microsoft.com/kb/257757

中的此链接

链接中的关键信息

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

我建议你看一下使用NPOI库,它非常快,在服务器端可靠运行。然后,您可以控制文件的生成位置。

答案 1 :(得分:2)

如果您使用临时路径或临时文件,则不应该关心它的位置。如果您需要关心,您应该使用具体文件的具体路径。您也可以使用MemoryStream在没有HardDisk的情况下完成所有操作。

编辑: 除了评论之外,我建议您使用Open XML来创建Excel工作表。如果这是一个选项让我知道,我会发布更多信息。

我必须说我不知道​​Chris Taylors发表这篇文章,如果我去年发现了这篇文章,它给我节省了很多时间。但是在这一点上我必须说些什么;有可能获得运行使用互操作的服务器端解决方案,我去年需要它。但是直到它起作用才是痛苦的,如果有人想试试这里有一些建议:

  • 你不应该直接使用互操作 来自ASP apllication
  • 你不能使用假冒(它可能会 意外失败)
  • 您将需要一个运行的服务 系统
  • 你需要一个运行该命令的可执行文件 互操作
  • 你必须管理执行 通过服务(我的意思是 管理,而不仅仅是开始)

再一次;我不建议这样做。如果您使用任何其他解决方案。 (MS支持SharePoint2010的自动化服务)