使用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);
使用NPOI按照word模板文件生成新的word文件的更多相关文章
- C#读取Word模板替换相应的字符串(标签)生成新的Word
在平常工作中,生成word的方式主要是C#读取html的模板文件处理之后保存为.doc文件,这样的好处是方便,快捷,能满足大部分的需求.不过有些特殊的需求并不能满足,如要生成的Word为一个表格,只是 ...
- MiniWord .NET Word模板引擎,藉由Word模板和数据简单、快速生成文件。
Github / Gitee QQ群(1群) : 813100564 / QQ群(2群) : 579033769 介绍 MiniWord .NET Word模板引擎,藉由Word模板和数据简单.快速生 ...
- windows通过pfx文件生成key、crt文件
nginx代理的时候,需要填写证书的crt跟rsa文件路径,通过iis导出的证书是pfx文件(不知道nginx能不能直接用pfx文件,没有查看过相关资料),所以要通过pfx文件生成crt.rsa文件. ...
- php根据word模板生成新的word文件
原文地址:http://www.niu12.com/article/16 php使用phpword将word内容变量替换 a.安装phpword composer require phpoffice/ ...
- java代码操作word模板并生成PDF
这个博客自己现在没时间写,等后面有时间了,自己再写. 这中需求是在实际的项目开发中是会经常遇到的. 下面我们先从简单入手一步一步开始. 1.首先,使用word创建一个6行两列的表格. 点击插入-6行2 ...
- 依据word模板批量生成试卷
java-word-MassProduction 目录 使用方法 开发流程 一.使用方法 1.制造题库所需Word模板 需要填充数据的地方使用 ${pid} 代替. 将这个word选择另存为,保存格式 ...
- 依据BOM和已经存在的文件生成其他种类的文件
在BOM中记录中有物料编码,物料名称,物料规格等,而且依据BOM已经生成了一些的文件,如采购规格书,这个时候需要生成相应的检验规格书模板,可以使用下面的VBA代码,具体代码如下: Function I ...
- POI3.10读取Excel模板填充数据后生成新的Excel文件
private final DecimalFormat df = new DecimalFormat("#0.00"); public void test(){ String fi ...
- 使用T4模板同时生成多个类文件
代码: <#@ template language="C#" debug="false" hostspecific="true"#&g ...
随机推荐
- pip freeze 命令迁移模块
问题描述:现有一个测试环境安装了脚本相关的各类模块,现需要不通过联网下载,在另一个环境配置安装相同的模块 解决方案: 在安装了python脚本相关的各类模块的测试环境里,进入到任意目录下,导出pyth ...
- Django框架简介-模板系统
2.4 模板 官方文档 2.4.1 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 2.4.1.1 变量 {{ 变量名 }} 变量名由字母数 ...
- mysql索引 ->创建索引、修改索引、删除索引的命令语句
查看表中已经存在 index:show index from table_name; 创建和删除索引索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER ...
- django中的ORM介绍和字段及字段参数
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...
- python-面向对象:类与类之间的关系和特殊成员
# class Person: # def play(self, tools): # 通过参数的传递把另外一个类的对象传递进来 # tools.run() # print("很开心, 我能玩 ...
- 垃圾收集器(GC)
堆分区:所有new的对象都会存放在堆中 > 新生代(Young Generation):存放生命周期短的对象,具体还分为Eden和Survivor两个区,其中Survivor分为Fro ...
- 一个简易的allocator
#include <vector> #include <iostream> #include <algorithm> using namespace::std; t ...
- 阶段01Java基础day24多线程+GUI
25.01_多线程(多线程方法) 1.yield让出cpu 2.setPriority()设置线程的优先级 25.02_多线程(单例设计模式)(掌握) 单例设计模式:保证类在内存中只有一个对象. 如何 ...
- 结构体变量的 extern 使用方法,转--
要求如下,在.h文件中这样定义: typedef struct typFNT_GB16 // 汉字字模数据结构 { signed ]; // 汉字内码索引 ]; ...
- 自动化测试-13.selenium执行JS处理滚动条
前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候 ...