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

  

使用NPOI按照word模板文件生成新的word文件的更多相关文章

  1. C#读取Word模板替换相应的字符串(标签)生成新的Word

    在平常工作中,生成word的方式主要是C#读取html的模板文件处理之后保存为.doc文件,这样的好处是方便,快捷,能满足大部分的需求.不过有些特殊的需求并不能满足,如要生成的Word为一个表格,只是 ...

  2. MiniWord .NET Word模板引擎,藉由Word模板和数据简单、快速生成文件。

    Github / Gitee QQ群(1群) : 813100564 / QQ群(2群) : 579033769 介绍 MiniWord .NET Word模板引擎,藉由Word模板和数据简单.快速生 ...

  3. windows通过pfx文件生成key、crt文件

    nginx代理的时候,需要填写证书的crt跟rsa文件路径,通过iis导出的证书是pfx文件(不知道nginx能不能直接用pfx文件,没有查看过相关资料),所以要通过pfx文件生成crt.rsa文件. ...

  4. php根据word模板生成新的word文件

    原文地址:http://www.niu12.com/article/16 php使用phpword将word内容变量替换 a.安装phpword composer require phpoffice/ ...

  5. java代码操作word模板并生成PDF

    这个博客自己现在没时间写,等后面有时间了,自己再写. 这中需求是在实际的项目开发中是会经常遇到的. 下面我们先从简单入手一步一步开始. 1.首先,使用word创建一个6行两列的表格. 点击插入-6行2 ...

  6. 依据word模板批量生成试卷

    java-word-MassProduction 目录 使用方法 开发流程 一.使用方法 1.制造题库所需Word模板 需要填充数据的地方使用 ${pid} 代替. 将这个word选择另存为,保存格式 ...

  7. 依据BOM和已经存在的文件生成其他种类的文件

    在BOM中记录中有物料编码,物料名称,物料规格等,而且依据BOM已经生成了一些的文件,如采购规格书,这个时候需要生成相应的检验规格书模板,可以使用下面的VBA代码,具体代码如下: Function I ...

  8. POI3.10读取Excel模板填充数据后生成新的Excel文件

    private final DecimalFormat df = new DecimalFormat("#0.00"); public void test(){ String fi ...

  9. 使用T4模板同时生成多个类文件

    代码: <#@ template language="C#" debug="false" hostspecific="true"#&g ...

随机推荐

  1. Android Studio 使用本地gradle配置详解

    由于国内墙的原因,我们的Gradle无法使用 但是我们可以通过去下载我们想要的Gradle版本 然后再AndoidStudio内去配置本地的版本 进而去实现了Gradle的配置 注意一: so我们按照 ...

  2. linux服务器查看项目日志命令

    1.tailf mywork.log | grep --line-buffered findUserList      实时跟踪日志,这里是只要findUserList 这个方法被运行,就会将它的日志 ...

  3. 『TensorFlow』TFR数据预处理探究以及框架搭建

    一.TFRecord文件书写效率对比(单线程和多线程对比) 1.准备工作 # Author : Hellcat # Time : 18-1-15 ''' import os os.environ[&q ...

  4. mybatis_generator合并xml mapper文件

    一.问题 用的mybatis.generator 1.3.6版本,版本没啥大关系. 目前的xml输出有两个主要的问题: 1.xml追加而不是覆盖 这样就导致一个xml mapper文件每个node都重 ...

  5. [atcoder contest 010] F - Tree Game

    [atcoder contest 010] F - Tree Game Time limit : 2sec / Memory limit : 256MB Score : 1600 points Pro ...

  6. linux c使用socket进行http 通信,并接收任意大小的http响应(二)

    先贴请求头部信息组织代码. 有同学会疑问http_url.h是干什么用的,我要在这里声明,http_url.h并不是给http_url.c用的,实际上http_url.h声明了http_url.c已经 ...

  7. 高性能场景下,HashMap的优化使用建议

    1. HashMap 在JDK 7 与 JDK8 下的差别 顺便理一下HashMap.get(Object key)的几个关键步骤,作为后面讨论的基础. 1.1 获取key的HashCode并二次加工 ...

  8. ionic3 使用swiper插件 实现轮播效果

    由于app的更新迭代 我需要完成新版本设计图的开发 刚开始就遇到一个问题  首页的banner图需要实现某种效果 而ionic3自带的轮播图效果怎么改都改不到我想要的效果 效果图如下  自动播放 不断 ...

  9. Msfvenom学习总结

    1.    –p (- -payload-options) 添加载荷payload. 载荷这个东西比较多,这个软件就是根据对应的载荷payload生成对应平台下的后门,所以只有选对payload,再填 ...

  10. XCode9和10编译Cordova报错toLowerCase of undefined解决方案

    XCode升级到9或10后,cordova build时报错:toLowerCase of undefined... 解决方案: 修改platforms/ios/cordova/lib/list-em ...