2013-12-18 31 views
6

Mam szablon słowo z tabelą, które zapełniam z listy ciągów, które dzielę przy użyciu znaków tabulacji.Dodaj wiersz do tabeli MS Word przy użyciu Office.Interop

Nie wiem, ile linii tekstu będę mieć, ponieważ będzie się różnić.

Więc dodaję wiersz programowo przed iteracja moim pętli tak:

oWordDoc.Tables[2].Rows.Add(oWordDoc.Tables[2].Rows[1]); 

niestety jest dodanie wiersz przed zamiast po bieżącym wierszu.

Jak mogę zmienić mój kod, aby zawsze zawierał pusty wiersz po bieżącym wierszu?

Odpowiedz

5

Zostaw wartość parametru jako brakującą wartość dla funkcji Row.Add

object oMissing = System.Reflection.Missing.Value;   
// get your table or create a new one like this 
// you can start with two rows. 
Microsoft.Office.Interop.Word.Table myTable = oWordDoc.Add(myRange, 2,numberOfColumns) 
int rowCount = 2; 
//add a row for each item in a collection. 
foreach(string s in collectionOfStrings) 
{ 
    myTable.Rows.Add(ref oMissing) 
    // do somethign to the row here. add strings etc. 
    myTable.Rows.[rowCount].Cells[1].Range.Text = "Content of column 1"; 
    myTable.Rows[rowCount].Cells[2].Range.Text = "Content of column 2"; 
    myTable.Rows[rowCount].Cells[3].Range.Text = "Content of column 3"; 
    //etc 
    rowCount++; 
} 

Nie przetestowane ten kod, ale powinno działać. ..

3

Znalazłem go, powinno być:

Object oMissing = System.Reflection.Missing.Value; 
oWordDoc.Tables[2].Rows.Add(ref oMissing); 
Powiązane problemy