服务器上的Word自动化

时间:2009-04-09 03:51:10

标签: automation ms-word

我们要求我们的网络应用程序将进行邮件合并 生成一些Word文档。当然这很容易使用 Word自动化,但不建议Microsoft http://support.microsoft.com/kb/257757

  

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

在这种情况下,人们通常会做些什么?只要接受那个词 偶尔会挂起或寻求第三方解决方案。

2 个答案:

答案 0 :(得分:4)

基本上你有三个选择:

  1. 在服务器上运行它并接受这些后果。我从经验中知道事情确实出了问题,但是根据你正在做的任务的实时性和高优先级,这可能是你可以忍受的事情。基本上,如果你必须这样做,尽量做尽可能小的Word集成;如果它只是一个邮件合并,那么99.9%的时间你可能会毫无问题地离开。
  2. 使用第三方解决方案。但是根据经验,除了非常简单的文档之外,这些文件从来都不能正常完成。例如,如果您正在谈论将从服务器上的Word文档生成PDF的内容,它将永远不会像在Word中那样。
  3. 使用.NET Open XML libraries自行处理文档,而不是直接调用Word。我甚至在VB6中编写了操作Word / Excel 2007文档的东西,因为它们都是非常好的XML格式。你使用2007格式,但它快速而且好。但是我认为你需要手动进行邮件合并,所以它可能不合适。此解决方案通常更适合处理文档而不是替换Word API函数。
  4. 从个人经验来看,我已经完成了第一次,并且它足以让我们的客户接受,我弄乱了第二次并且从未满足,我已经完成了第三次并取得了巨大的成功(但是相当多工作)。

    简而言之,人们根据成本(时间等)与可靠性做各种各样的事情:我建议选择1或2用于快速(但不太可靠)的解决方案,或3建议用于更可靠(但成本更高)的解决方案

答案 1 :(得分:1)

我使用自动化构建了一个Powerpoint应用程序。基本上它是一个幻灯片库网站,它打开了多个文件并将幻灯片移动到模板中。

我遇到的第一个问题是安全性,我最终将应用程序设置为以管理员身份运行,这是不推荐的,大多数地方可能会对此操作不满意。您需要具有自定义安全设置的灵活性。

我确实遇到了一些我们从未被追踪的应用程序池崩溃,我相信我还必须让用户登录远程桌面,但始终断开连接。

底线是你可以让自动化工作,但它的hacky。如果你有灵活性和自动化是你最好的选择,那就去吧。否则我有两个想法。

  1. 探索Open XML和Open XML SDK
  2. 的使用
  3. 查看在受信任的用户帐户上运行WCF服务。然后让您的网页调出或排队作业以处理请求。