c# - 最大行 Microsoft.Office.Interop.Word.Table

标签 c# ms-word office-interop

我正在尝试生成一个表格并将其插入到 Word 文档中,如下所示:

object missing = System.Reflection.Missing.Value;
var paragraph = miDoc.Paragraphs.Add(ref missing);

Microsoft.Office.Interop.Word.Table tablaEvaluacion = 
Globals.ThisDocument.Tables.Add(paragraph.Range, lstContacto.Count + 1, lstEvaluacion.Count + 3, ref missing, ref missing);

但是当行数超过 63 时,这会导致异常:“COMException 未被用户代码处理。数字必须介于 1 和 63 之间。

最佳答案

首先 - 您 100% 确定您指的是行吗?您可以从我下面的回答中读到,我可以在表格中插入超过 63 行,但插入更多然而,超过 63 列会导致与您描述的相同的问题。

无论如何,我已尝试对此进行调查 - 这是我发现的内容:

使用谷歌:

使用文档:

  • documentation此处没有太大帮助,因为未提及限制。

使用 dotPeek:

  • 我尝试反编译 Microsoft.Office.Interop.Word.Tables 类型,希望找到描述限制的注释 - 但没有成功。该代码只是使用 COM 调用 Word 中的函数,因此异常很可能从 Word 一直冒泡,通过互操作程序集进入您的代码。

使用我自己的示例实现:

documentA.Tables.Add(range, 01, 64); // COMException -> "The number must be between 1 and 63."
documentA.Tables.Add(range, 01, 63); // All good
documentA.Tables.Add(range, 64, 01); // All good

示例代码显示,当我尝试使用超过 63 列时,将抛出您引用的 COMException。我运行的是带有第 15 版 Interop API 的 MS Office 2013。

使用 MS Word 2013:

  • 首先使用我的示例应用程序插入一个包含 63 列的表格,然后我打开文档并要求 Word 插入另一列 - 这给了我以下错误:

enter image description here

归根结底,63 列似乎是允许插入的最大列数。

希望这有助于解决问题;)

关于c# - 最大行 Microsoft.Office.Interop.Word.Table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13840568/

相关文章:

c# - AddTransient、AddScoped 和 AddSingleton 服务差异

C# OpenFileDialog 不显示内容,显示文件目录

c# - 如何在 c# 的 ms word 文档中为多语言文本设置字体?

vba - 重新检查拼写与 VBA 代码不同的文档

visual-studio-2010 - C# 4.0 动态 Office 互操作性能

c# - 如何快速将 object[,] 向上转换为 double[,]?

c# - 用空字符串替换非数字

c# - 从 RowDataBound 事件的 gridview 的单元格中获取值

c# - 在 Word (VSTO) 中并排比较两个 RTF 文档

c# - Excel 2013 崩溃