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