NuGet 安装 NPOI
1. 建立模板(可选): 手动建立Word模板, 多使用表格然后隐藏边框, 方便数据插入固定位置
2. 建立Word对象引入模板
string dPath = $"{Environment.CurrentDirectory}\\Data\\Demo.docx"; Stream fs = new FileStream(dPath, FileMode.Open); XWPFDocument document = new XWPFDocument(fs);
3. 段落插入
public void Main() {string dPath = $"{Environment.CurrentDirectory}\\Data\\Demo.docx";Stream fs = new FileStream(dPath, FileMode.Open);XWPFDocument document = new XWPFDocument(fs);AddParagraph(document, 0, 2, 2, AddPlaceholder(a1));AddParagraph(document, 0, 3, 2, AddPlaceholder(a2));AddParagraph(document, 0, 4, 2, AddPlaceholder(a3)); } /// <summary> /// 表格内插入段落 /// </summary> /// <param name="document">模板对象</param> /// <param name="TabIndex">表格序号</param> /// <param name="Row">行</param> /// <param name="Cell">列</param> /// <param name="value">插入数据</param> /// <returns></returns> public XWPFParagraph AddParagraph(XWPFDocument document, int TabIndex, int Row, int Cell, string value) {XWPFParagraph paragraph = document.Tables[TabIndex].GetRow(Row).GetCell(Cell).Paragraphs[0]; //创建段落对象paragraph.Alignment = ParagraphAlignment.CENTER;//文字显示位置,段落排列(左对齐,居中,右对齐)XWPFRun xwpfRun = paragraph.CreateRun();//创建段落文本对象xwpfRun.SetText(value);//填充内容xwpfRun.FontSize = 14;//设置文字大小xwpfRun.IsItalic = false;//是否设置斜体(字体倾斜)//xwpfRun.SetColor(fontColor);//设置字体颜色--十六进制xwpfRun.SetFontFamily("宋体", FontCharRange.None); //设置标题样式如:(微软雅黑,隶书,楷体)根据自己的需求而定return paragraph; }
4. 插入图片
table = document.Tables[4];XWPFTableCell Cell = table.GetRow(1).GetCell(0); XWPFParagraph p = Cell.Paragraphs[0]; XWPFRun run = p.CreateRun(); using (FileStream file = File.Open($"{PDFpath}.png", FileMode.OpenOrCreate)) {run.AddPicture(file, (int)NPOI.XWPF.UserModel.PictureType.PNG, "1.png", 5100000, 3000000); }
5. 保存文件
sting SavePath = $"{Environment.CurrentDirectory}\\TestData\\{TestProject.ProjectName}\\{ObjectName}.docx"; using (FileStream fswrite = File.Open(SavePath, FileMode.OpenOrCreate)) {document.Write(fswrite); }document.Close();