2012-03-09 13 views
4

ワードは、一緒に挿入されたテーブルをマージするので、2つのテーブルを追加するには、その間に段落を置く必要があります。これはうまくいきましたが、段落を分割して別の段を重ねて重ねるようにする必要があります。ワードドキュメントに2つのテーブルを直接重ねて追加する

var document = GetDocument(word, @"C:\Blank.docx"); 
object missing = System.Reflection.Missing.Value; 

var paragraph = document.Paragraphs.Add(ref missing); 
paragraph.Range.Text = "..."; 

var table = document.Tables.Add(paragraph.Range, 1, 1, ref missing, ref missing); 
table.Borders.Enable = 1; 

paragraph.Range.Collapse(Microsoft.Office.Interop.Word.WdCollapseDirection.wdCollapseEnd); 
paragraph.Range.InsertParagraphAfter(); 
paragraph.Range.Collapse(Microsoft.Office.Interop.Word.WdCollapseDirection.wdCollapseEnd); 

paragraph = document.Paragraphs.Add(ref missing); 
paragraph.Range.Text = "..."; 
table = document.Tables.Add(paragraph.Range, 1, 1, ref missing, ref missing); 
table.Borders.Enable = 1; 

document.Save(); 

var doc_close = (Microsoft.Office.Interop.Word._Document)document; 
doc_close.Close(); 

Marshal.ReleaseComObject(document); 

上の写真は、上記のコードの結果を示しています。私は、2つのテーブル間の段落を削除したいが、どのようにcomオブジェクトを使用するか分からない。注意すべき重要なことは、単語の段落を削除するには、 "Backspace"ではなく "Delete"を押す必要があることです。私はそれが正しい答えを見つけるための重要なヒントだと思う。

The top picture is the result of the above code, the bottom picture is what I want.

この例では、私は、単一のテーブルで行うことができる何かをしたいようにそれが思われてしまうが、実際のアプリケーションでは動作が異なりますし、互いの上に積層された2つの異なるテーブルが必要です。

私はこのLibの http://docx.codeplex.com/を使用しようと、私はそれがしばらくは戻って

あなたはいつものようにもオフィス用のOpenXML SDKを使用することができCOMより使いたくさんより簡単に見えますが、私はdocxファイルが容易になります疑いが見つかった

答えて

1
+0

私は確かに私の次のプロジェクトでこれを使用します、comは頭痛と半分です!このプロジェクトでは、私はすでにcomを使ってすべてをコーディングしましたが、この段落はこれを完了するための私の方法です。 (それは私を狂ってしまう!笑) – sooprise

+0

悲しい顔、DocXは同じ問題を抱えているようです。私は同じ文書に2つのテーブルを追加しようとしましたが、単語はそれらを1つにマージします。それから私はそれらの間に段落を持つ2つのテーブルを追加しようとしましたが、今段落を削除することはできません...私はまだ希望を維持している、これはcomよりも使いやすいです。 – sooprise

+0

Doh!うれしいことは –

関連する問題