1

DocX nuget パッケージを使用して Word .docx ファイルを作成/操作しようとしています。

ドキュメントでは、次の例を提供しています。

// 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" を確認しましたが、すべてのプロパティが設定されているようです。エラーの原因については不明です。

どんな助けでも大歓迎です。

4

1 に答える 1

1

docx.codeplex.com からダウンロードした最新バージョンの DLL を使用するように切り替えました。

私はまだこの問題を抱えていました。ただし、ソース ドキュメントからコピーしたテーブルと、DocX.dll を使用して直接作成したテーブルを比較しました。

何らかの理由でソース テーブルの Design プロパティが何も設定されていないことがわかりましたが、直接作成したテーブルは Novacode.TableDesign.TableGrid に設定されていました。

現在、ソース テーブルでこのプロパティを設定していますが、すべてが期待どおりに機能します。

mytable.Design = Novacode.TableDesign.TableGrid;

これは、修正中のソース ドキュメントに問題があると思われます。ただし、私は元の作成者ではないため、これを制御することはできません。

このプロパティを手動で設定すると、ソース テーブルを複製できるようになり、ソリューションが機能するようになりました。

于 2015-05-04T14:29:39.573 に答える