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

      

  • 相关阅读:
    HDOJ.1029 Ignatius and the Princess IV(map)
    STL之map
    STL之map
    UVA.1584 环状序列
    UVA.1584 环状序列
    AOJ. 数组训练.2016-11-17
    AOJ. 数组训练.2016-11-17
    AOJ.592 神奇的叶子
    AOJ.592 神奇的叶子
    技能书
  • 原文地址:https://www.cnblogs.com/YYkun/p/10242624.html
Copyright © 2011-2022 走看看