c# - 如何加快从 C# 生成 Word 文件的速度?

标签 c# office-interop

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

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

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

所以...我正在寻找加速 Word 文件生成的替代方法的建议。

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

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

最佳答案

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

而且它比 office interop 更容易使用。

关于c# - 如何加快从 C# 生成 Word 文件的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1863374/

相关文章:

c# - 使用 WPD (Windows Portable Device) Apis 传输图像文件时出错

用于打开 MSG 文件的 C# Outlook 互操作和 OpenSharedItem

c# - 办公文件转PDF

c# - 无法将 Microsoft Office Interop 程序集添加到项目中

javascript - eventRender 未被触发 Fullcalendar ASP.net C# webforms

c# - Haxe 编译器可以将任何 C# 代码转换为 Haxe 吗?

c# - 如何确定 GDI+ 中两条线的交点?

c# - 将带有参数的 url 路由到 .NET 应用程序

java - 获取 Excel 列的宽度(以像素为单位,而不是默认的测量单位)

c# - SHIFT+ENTER 写入 Interop.Word 文档的击键是什么