2010-04-30 4 views
0

lorsque j'insère '\r\n' dans une cellule d'une table dans un document Word en utilisant C#, cela ne fonctionne pas, pourquoi? comment faire ?Comment insérer une nouvelle ligne dans une cellule de tableau dans Word?

Word.Application wordApp; 
Word.Document wordDoc; 
filePath = @"" + strWorkPath + @"Uploads\Template\template.doc"; 
saveFilePath = @"" + strWorkPath + @"Uploads\" + VersionStr + @"\" + fileName; 
object format = Word.WdSaveFormat.wdFormatDocument; wordApp = new Word.Application(); 
Object nothing = Missing.Value; 
wordDoc = wordApp.Documents.Open(ref filePath, ref nothing, ref nothing, ref nothing, ref nothing,ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing); 
Word.Table table = wordDoc.Tables[1]; 
table.Cell(1, 1).Range.Text = "sdsdlkfjdslk \r\n slkdfjslj"; 

comme indiqué dans la dernière ligne.

Dans le document, il est "sdsdlkfjdslk \r\n slkdfjslj", pas "sdsdlkfjdslk slkdfjslj"

Répondre

3

Essayez

"sdsdlkfjdslk" + (char)11 + "slkdfjslj" 

ou

"sdsdlkfjdslk \v slkdfjslj" 
+0

+1 Cela a fait l'affaire pour moi –

+0

Pour moi, il échoue avec l'exception suivante: '\ v', valeur hexadécimale 0x0B, est un caractère invalide. –

0

(char) 11 et \ v ne fonctionne pas pour moi. J'ai reçu "la valeur hexadécimale 0x0B, est un caractère non valide". La solution suivante a fait l'affaire pour moi.

Paragraph paragraph = new Paragraph(); 
string[] lines = Value.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries); 
Run run = new Run(new Text(lines[0])); 
if (lines.Length > 1) 
{ 
    run.AppendChild(new Break()); 
    run.AppendChild(new Text(lines[1])); 
} 
paragraph.Append(run); 

je fini par garder la chaîne, la variable valeur dans l'exemple, en entrant dans la cellule avec « \ n » comme le saut de ligne. Je divise la chaîne en un tableau sur le saut de ligne. Je n'avais qu'une possibilité de faire une pause dans mon code mais vous pouviez utiliser un foreach pour faire une boucle si vous avez plusieurs sauts de ligne.

Questions connexes