使用户能够在.NET应用程序中编辑Word 97-2010文档

时间:2010-12-21 18:24:58

标签: c# .net ms-word

我想知道是否有人知道任何产品/方法让我的最终用户能够在我们的C#/ .NET应用程序中编辑Word文档,避免使用自动化和在应用程序之外单独打开Word的实例。这是一种可能性[备份计划!] - 但我不想实施(由于涉及大量工作并让用户退出我们的应用程序)。

我知道我可以使用WebBrowser控件 - 但是从我能够找到的内容 - 对此的支持最多是粗略的,并且工具栏之类的东西不存在,并且它似乎不起作用无论如何,使用Word 2010。

我一直在评估一些声称可以做到这一点的产品,但许多产品缺乏功能或在文档中产生兼容性错误,导致它们在Word中打开时无用。

我们正在使用Word 2003和Word 2010.我们的文档通过自定义合并/模板化流程以.DOCX文件开头。

对产品或其他想法的任何建议都会很棒。

  • 编辑: 我们使用OpenXML创建文档没有问题。好玩的东西,效果很好。但是,在一天结束时,我更愿意让用户直接在我们的.NET应用程序中编辑创建的文档以及遗留文档(创建为.DOC文件)。不幸的是,微软删除了通过ActiveX / OLE等嵌入的能力,没有办法做到这一点。我正在寻找的是实现这一目标的第三方产品,它几乎与.DOC和.DOCX格式100%兼容。

对于那些问为什么的人?安全性,易用性等。我们将文档存储在数据库中。一旦我开始删除文件系统上的文件并使用自动化支持/宏,...有很多事情需要做才能将文件重新发送到数据库/更新等等。由于Word,这一点特别困难不公开文档的原始字节[],文件必须保存为fs上某处的临时文件。只是很麻烦。

因此,“最简单”的解决方案 - 嵌入Word [似乎不可能]或使用支持编辑.DOC / .DOCX文件的第三方产品。

一个例子是DevExpress XtraRichEdit控件 - 遗憾的是,虽然它支持许多不错的类似Word /兼容的功能,但它只适用于.DOCX文件..并且与Word相比,它不是100%完整的功能。

5 个答案:

答案 0 :(得分:2)

word文档的文件结构非常庞大,即使有限的.doc / docx支持也可能需要数百个工时。使用您的程序在单词本身上编辑单词文件到底是什么原因?

我不确定Word 2003是如何支持.docx的,我的理解是当Office 2007发布时只有一个单词查看器发布,当然这已经好几年了。这就是问题。

如果您要实际执行此操作,只需添加对.doc文件的支持,因为有更多信息,您可以允许word本身处理.docx文件的转换(如果需要)。

答案 1 :(得分:1)

以前通过名为OLE Embedding的功能支持此功能。在过去10年中,对Microsoft软件和工具的支持一直在消失。值得注意的是,.NET无论如何都不支持它。办公室是2007年最后一次被淘汰出局之一。但这确实看起来在2010年版中完全是奇闻趣事。所有下载链接到DSOFramer控件,一个通用的ActiveX嵌入控件在2010年进入测试阶段时被删除。

这里没有未来,请看VSTO前进的道路。

答案 2 :(得分:1)

您不会找到执行此操作的第三方产品。构建100%支持Word格式的应用程序所需的工作量是无法考虑的。不仅仅是每个功能,而且每个bug都必须重复。考虑到这样做的潜在法律缺陷,没有一个心智正常的人会费心去尝试。顺便提一下,法律方面是新格式的主要原因之一。

这意味着你必须外向。这里有两个非常好的选择。

一个是挂钩Office Live,让他们能够在线编辑Microsoft文档。

另一种可能性是在您的应用程序中使用Sharepoint。它内置了文档工作流程的方法,并与Office很好地集成。

第三种可能性是编写自己的单词加载项,用于保存/加载系统中的文档。在走这条路之前,我会选择上面的前两个。

答案 3 :(得分:0)

Word Automation ServicesOffice Web Apps(需要SP 2010)。

答案 4 :(得分:0)

当然不是100%覆盖Word功能,但您尝试过ASPOSE.Words.NET总计还是TXTextControl.NET