【问题标题】:How to Add row in word document table by C#如何通过C#在word文档表中添加行
【发布时间】:2019-10-25 15:47:59
【问题描述】:

在 word 文档表中添加新行时,我遇到了下一个错误:-

System.Runtime.InteropServices.COMException: '请求的成员 该集合不存在。'

我使用的完整代码:-

Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
object miss = System.Reflection.Missing.Value;
object path = string.Format(@"Doc_Path_here");
object readOnly = false;
Microsoft.Office.Interop.Word.Document doc = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);
doc.Tables[0].Rows.Add();

我尝试了现有的herehere 的解决方案,但没有任何积极的结果。

感谢任何帮助。

更新:-

word文档有一张表,这个是确定的, 并且下一个代码的结果nCount变量是1

int nCount = doc.Tables.Count;

【问题讨论】:

  • 该错误是因为doc.Tables[0].Rows.Add() 专门在该行上。您很可能没有任何桌子;你确认了吗?
  • 问题是 Word collections 总是从 1 开始的。这些不是数组; Office 集合从不基于 0。所以使用doc.Tables[1].Rows.Add
  • @CindyMeister,你是对的,非常感谢。

标签: c# ms-word office-interop


【解决方案1】:

here in MSDN所述:

当您尝试访问不存在的对象时,出现“请求的集合成员不存在”错误。

您应该在尝试访问之前检查成员是否存在。您可以使用集合的Count 属性来确定该成员是否存在。

正如@Cindy Meister 在 cmets 中提到的,Office 集合不是基于零的。尝试像这样访问它:

doc.Tables[1].Rows.Add();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多