2015-05-03 2 views
1

Я пытаюсь создать/обработать файлы Word .docx с помощью пакета DocX nuget.Ошибка при попытке вставить таблицу с помощью пакета Novacode 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. 

Когда код выполняется получаю ошибку при вставке таблицы: Таблица Новая_таблица = documentB.InsertTable (т);

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

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

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

ответ

1

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

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

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

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

mytable.Design = Novacode.TableDesign.TableGrid; 

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

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