2010-04-30 3 views
0

когда я вставляю '\r\n' в ячейку таблицы в документе слова с помощью C#, это не работает, почему? как это сделать ?Как вставить новую строку в ячейку таблицы в 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"; 

как показано на последней строке.

В документе, это "sdsdlkfjdslk \r\n slkdfjslj", не "sdsdlkfjdslk slkdfjslj"

ответ

3

Попробуйте

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

или

"sdsdlkfjdslk \v slkdfjslj" 
+0

+1 Это сделало трюк для меня –

+0

Для меня это не соответствует следующему исключению: '\ v', шестнадцатеричное значение 0x0B, является недопустимым символом. –

0

(символ) 11 и \ v не работает для меня. Я получил «шестнадцатеричное значение 0x0B, является недопустимым символом». Следующее решение получило трюк для меня.

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); 

Я закончил тем, сохраняя строку, значение переменной в примере, входя в камеру с «\ п», как разрыв строки. Я разделил строку на массив на разрыв строки. У меня была возможность только одного перерыва в моем коде, но вы можете использовать foreach для прокрутки, если у вас есть несколько разрывов строк.

Смежные вопросы