DocX - 在指定索引处插入表格

时间:2014-08-24 05:49:02

标签: c# visual-studio-2012 docx novacode-docx

我开发了一个WinForms应用程序,它利用DocX Library在内存中编辑.docx文件。

我有一个问题,我曾经大力搜索过Google,这是我想使用特定索引在我的文档中添加一个表格。

我这样做是因为已经在文档中有一个空白表,然后使用预先存在的表中的索引找到索引并用我的表替换表。我最终得到了这个错误:

位置:部分:/word/document.xml,行:22,列:0

我不知道这是否是DocX故障还是我接近这个错误。

下面的代码不是我的应用程序,而是我的应用程序使用的一些基本代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Novacode;

namespace DocXTesting
{
class Program
{
    static void Main(string[] args)
    {

        using (DocX document = DocX.Load(@"Test.docx"))
        {
            Table t = document.Tables[0];
            int tIndex = t.Index;

            try
            {
                t.Remove();

                Table newTable = document.InsertTable(tIndex, 4, 4);
                document.Save();

            }
            catch (Exception x)
            {
                Console.WriteLine(x.Message);
            }

        }
        Console.ReadKey();

    }
}

}

1 个答案:

答案 0 :(得分:1)

根据" Advance - Invoice Example"可以从codeplex(http://docx.codeplex.com/releases/view/31554)下载的示例项目:

  1. 查找占位符表
  2. 在占位符表
  3. 之后插入新表
  4. 删除占位符表
  5. 简化代码:

    Table placeholderTable = document.Tables[0];
    
    Table realTable = placeholderTable.InsertTableAfterSelf(4, 4);
    
    placeholderTable.Remove();
    

    如果您需要用表格替换文字,请参阅Vilhelm的回答DocX clone table and insert at index