Ошибка при попытке вставить таблицу с помощью пакета Novacode DocX nuget

Я пытаюсь создать/обработать файлы Word .docx с помощью пакета DocX nuget.

В документации они приводят следующий пример:

// Place holder for a Table.
Table t;

// Load document a.
using (DocX documentA = DocX.Load(@"C:\Example\a.docx"))
{
    // Get the first Table from this document.
    t = documentA.Tables[0];
}

// Load document b.
using (DocX documentB = DocX.Load(@"C:\Example\b.docx"))
{
    /* 
     * Insert the Table that was extracted from document a, into document b. 
     * This creates a new Table that is now associated with document b.
     */
    Table newTable = documentB.InsertTable(t);

    // Save all changes made to document b.
    documentB.Save();
}// Release this document from memory.

Когда код выполняется, я получаю сообщение об ошибке при вставке таблицы: Table newTable = documentB.InsertTable(t);

Ошибка: System.InvalidOperationException {"Последовательность не содержит элементов"}

Я в недоумении, почему это происходит. Я просмотрел таблицу "t", которая вставляется, и, похоже, все свойства заполнены. Мне неясно, что вызывает ошибку.

Любая помощь будет принята с благодарностью.


person Richard West    schedule 03.05.2015    source источник


Ответы (1)


Я перешел на использование последней версии DLL, загруженной с docx.codeplex.com.

У меня все еще была эта проблема. Однако затем я сравнил таблицу, которую копировал из исходного документа, с таблицей, созданной непосредственно с помощью DocX.dll.

Я обнаружил, что по какой-то причине для свойства Design в моей исходной таблице ничего не задано, однако для таблицы, которую я создал напрямую, было установлено значение Novacode.TableDesign.TableGrid.

Теперь я устанавливаю это свойство в своей исходной таблице, и все работает, как и ожидалось.

mytable.Design = Novacode.TableDesign.TableGrid;

Я подозреваю, что это проблема в моем исходном документе, который я изменяю. Однако, поскольку я не являюсь первоначальным автором, я не могу это контролировать.

Установка этого свойства вручную позволяет мне клонировать исходную таблицу, и теперь мое решение работает.

person Richard West    schedule 04.05.2015