Word.ApplicationClass aWord = new Word.ApplicationClass();
aWord.Visible = true;
Word.Document aDoc = aWord.Documents.Add(ref modeleDoc, ref missing, ref missing, ref missing);
Word.Table tbl1, tbl2;
Word.Cell cell;
SortedList sl1 = new SortedList();
SortedList sl2 = new SortedList();
SortedList sl3 = new SortedList();
sl2.Add("a1", "aa");
sl2.Add("a2", "bb");
sl2.Add("a3", "cc");
sl3.Add("b1", "aa");
sl3.Add("b2", "bb");
sl3.Add("b3", "cc");
sl1.Add("a", sl2);
sl1.Add("b", sl3);
tbl1 = aDoc.Tables.Item(1);
object row = null;
Word.Range rng = null;
int start = 10;
int end = 10;
for (int p = 0; p < sl1.Count; p++)
{
row = tbl1.Rows.Item(p + 1) as object;
tbl1.Rows.Add(ref row);
tbl1.Cell(p + 1, 1).Range.Text = sl1.GetKey(p).ToString();
SortedList sln = (SortedList)sl1.GetByIndex(p);
object deb = (object)start;
object fin = (object)end;
rng = aDoc.Range(ref deb, ref fin);
tbl2 = aDoc.Tables.Add(rng, sln.Count, 2, ref missing, ref missing);
for (int r = 0; r < sln.Count; r++)
{
tbl2.Cell(r + 1, 1).Range.Text = sln.GetKey(r).ToString();
tbl2.Cell(r + 1, 2).Range.Text = sln.GetByIndex(r).ToString();
}
tbl2.Rows.Item(1).Range.Font.Bold = 1;
tbl2.Rows.Item(1).Range.Font.Italic = 1;
start *= 2;
end *= 2;
}