2013-12-18 16 views
6

Ho un modello di parole con una tabella che sto compilando da un elenco di stringhe che ho diviso usando i caratteri di tabulazione.Aggiungere una riga a una tabella MS Word utilizzando Office.Interop

Non so quante righe di testo avrò in quanto varierà.

Così sto aggiungendo una riga di codice prima che l'iterazione attraverso il mio ciclo come questo:

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

Purtroppo sta aggiungendo la riga prima, piuttosto che dopo la riga corrente.

Come posso modificare il mio codice per avere sempre una riga vuota aggiunta dopo la riga corrente?

risposta

5

Lascia il valore del parametro come un valore mancante per la funzione 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++; 
} 

non ho ancora testato questo codice, ma dovrebbe funzionare. ..

3

ho trovato, dovrebbe essere:

Object oMissing = System.Reflection.Missing.Value; 
oWordDoc.Tables[2].Rows.Add(ref oMissing); 
Problemi correlati