使用NPOI按照word模板文件生成新的word文件
/// <summary> /// 按照word模板文件 生成新word文件 /// </summary> /// <param name="tempFile">模板文件路径</param> /// <param name="saveFile">生成文件路径</param> /// <param name="billRegister">议案登记</param> public void CreateFileByTemplate(string tempFile,string saveFile, L1BillRegister billRegister) { using (FileStream stream = File.OpenRead(tempFile)) { XWPFDocument doc = new XWPFDocument(stream); //遍历段落 foreach (var para in doc.Paragraphs) { ReplaceKey(para, billRegister); } //遍历表格 foreach (var table in doc.Tables) { foreach (var row in table.Rows) { foreach (var cell in row.GetTableCells()) { foreach (var para in cell.Paragraphs) { ReplaceKey(para, billRegister); } } } } FileStream out1 = new FileStream(saveFile, FileMode.Create); doc.Write(out1); out1.Close(); } } /// <summary> /// 对模板中的值进行替换 /// </summary> /// <param name="para">word文档对象</param> /// <param name="billRegister">议案登记对象</param> private static void ReplaceKey(XWPFParagraph para, L1BillRegister billRegister) { string text = ""; foreach (var run in para.Runs) { text = run.ToString(); if (text.Contains("a")) { run.SetText(billRegister.BillName, 0); } else { run.SetText(text, 0); } } } //调用 string tempFile = System.Web.HttpContext.Current.Server.MapPath("~/weboffice/tempfiles/meetSolutions.docx"); string saveFile = System.Web.HttpContext.Current.Server.MapPath("~/weboffice/tempfiles/test/" + billRegister.BillId + ".doc"); this.CreateFileByTemplate(tempFile,saveFile, billRegister);