zoukankan      html  css  js  c++  java
  • 使用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);
    

      

  • 相关阅读:
    min-height IE6的解决方案
    javascript数据类型检测方法
    typeof、instanceof与isPrototypeOf()的差异与联系
    获取真实IP地址
    表格中的IE BUG
    【译】你对position的了解有多少?
    vim快捷键
    syntaxerror : unexpected token &
    .Net 高效开发之不可错过的实用工具
    @media screen 针对不同移动设备——响应式设计
  • 原文地址:https://www.cnblogs.com/YYkun/p/10242624.html
Copyright © 2011-2022 走看看