如何加速从C#生成Word文件?

时间:2009-12-07 22:32:16

标签: c# office-interop

我正在开发一个生成相对大量Word输出的应用程序。目前,我们使用Word Interop服务来创建文档,但速度很慢,尤其是在旧版(2007年之前)版本的Office中。我们想加快这一代人的发展。

我还没有做过很多分析,但我非常有信心问题是我们正在进行大量的COM调用。我希望分析会产生一个比其他调用慢的调用子集,但我的直觉告诉我,这可能是COM开销(或Word Interop开销)的问题,而不仅仅是一些慢速调用。

此外,该产品可以生成HTML输出,并且该过程(a)非常快,并且(b)使用几乎相同的代码路径,只是针对特定于HTML的功能部件使用不同的子类。所以我很确定我们的算法基本上没有慢。

所以......我正在寻找有关加速Word文件生成的其他方法的建议。

我们不能只将生成的HTML文件重命名为.doc,而我们无法生成RTF - 在这两种情况下,重要的格式信息都会丢失,而在RTF情况下,内联图形无法正常工作

我们正在评估的方法之一是以编程方式从模板生成和打开Word文件(通过互操作),该模板具有一个知道如何使用平面文件并创建必需输出的宏。我们对这种方法的反馈感兴趣,以及任何其他加快速度的想法。

2 个答案:

答案 0 :(得分:5)

如果你负担得起,我会推荐Aspose.Words产品。非常快,Word不需要安装。

此外,使用办公室互操作也更容易。

答案 1 :(得分:1)

你的宏观方法正是我们如何加速慢速excel互操作(我认为使用的是2003版)。

我们发现(至少在excel中)大部分的缓慢是由于通过互操作重复的个人呼叫。我们开始收集命令(即格式化大范围,然后根据需要更改特定单元格而不是单独格式化每个单元格),并在逻辑上移动到宏。

我认为宏+模板方法很乐意翻译。