****NPOI 版本2.5.1.0****
在使用NPOI操作word的table 中的段落文字实现换行时,试了几种方法都没法奏效:
方法一:直接给单元格添加文本:"\n","\r\n"均无效
1 string file = @"test.docx"; 2 Stream stream = File.OpenRead(file); 3 XWPFDocument doc = new XWPFDocument(stream); 4 var table = doc.Tables[0]; 5 table.GetRow(1).GetCell(1).SetText("1234\n5678"); 6 FileStream output = new FileStream(@"result.docx", FileMode.Create); 7 doc.Write(output);
方法二:使用段落属性,在段落中添加AddCarriageReturn,AddBreak均无效,但是发现AddCarriageReturn出现无法识别的□:
1 string file = @"test.docx"; 2 Stream stream = File.OpenRead(file); 3 XWPFDocument doc = new XWPFDocument(stream); 4 XWPFParagraph p_result = doc.CreateParagraph(); 5 var table = doc.Tables[0]; 6 var run = p_result.CreateRun(); 7 run.SetText("1234\n5678"); 8 run.AddCarriageReturn(); 9 run.AddBreak(); 10 run.AppendText("换行换行"); 11 table.GetRow(1).GetCell(1).SetParagraph(p_result); 12 FileStream output = new FileStream(@"result.docx", FileMode.Create); 13 doc.Write(output);
方法三:通过方法二发现AddCarriageReturn应该能够实现,只是npoi插入符号时候出现了某种bug的问题,偶然间发现鼠标光标放置在□处手动添加一个回车后,该换行付竟然被word识别了,于斯考虑新插入一个paragraph试试效果,完美解决!!!!
1 string file = @"test.docx"; 2 Stream stream = File.OpenRead(file); 3 XWPFDocument doc = new XWPFDocument(stream); 4 XWPFParagraph p_result = doc.CreateParagraph(); 5 var table = doc.Tables[0]; 6 var run = p_result.CreateRun(); 7 run.SetText("1234\n5678"); 8 run.AddCarriageReturn(); 9 run.AppendText("换行换行"); 10 table.GetRow(1).GetCell(1).SetParagraph(p_result); 11 var run2 = table.GetRow(1).GetCell(1).AddParagraph().CreateRun(); 12 run2.SetText(" "); 13 FileStream output = new FileStream(@"result.docx", FileMode.Create); 14 doc.Write(output);