• 使用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);
    

      

  • 相关阅读:
    蓝桥杯训练 | 二分和前缀和 | 02
    广西师大数据结构 | 2015年真题 | 02
    广西师大数据结构 | 2014年真题 | 01
    Centos添加开机自启项
    SUSE系统添加开机自启项
    LNMP
    源码编译安装 libiconv-1.14(php依赖)
    lnmp
    centos添加epel源
    系统挂在镜像
  • 原文地址:https://www.cnblogs.com/YYkun/p/10242624.html
Copyright © 2020-2023  润新知