C# 后台模块 Word 模板操作
public static string CreateWord()
{
//**********************************************
//来自博客http://blog.csdn.net/fujie724
//**********************************************
object oMissing = System.Reflection.Missing.Value;
//创建一个Word应用程序实例
Microsoft.Office.Interop.Word._Application oWord = new Microsoft.Office.Interop.Word.Application();
//设置为不可见
oWord.Visible = false;
//模板文件地址,这里假设在X盘根目录 模板word 位置
object oTemplate = "d://采购单生成表.docx";
//以模板为基础生成文档
Microsoft.Office.Interop.Word._Document oDoc = oWord.Documents.Add(ref oTemplate, ref oMissing, ref oMissing, ref oMissing);
//声明书签数组
object[] oBookMark = new object[11];
//赋值书签名 //获取模板 指定书签
oBookMark[0] = "MerchantName";
oBookMark[1] = "CustomerName";
oBookMark[2] = "SHR";
oBookMark[3] = "PZS";
oBookMark[4] = "Address";
oBookMark[5] = "CGDNO";
oBookMark[6] = "Phone";
oBookMark[7] = "NO";
oBookMark[8] = "CreateTime";
oBookMark[9] = "Table"; //赋值任意数据到书签的位置
oDoc.Bookmarks.get_Item(ref oBookMark[0]).Range.Text = "新华瀚品";
oDoc.Bookmarks.get_Item(ref oBookMark[1]).Range.Text = "李四";
oDoc.Bookmarks.get_Item(ref oBookMark[2]).Range.Text = "李四";
oDoc.Bookmarks.get_Item(ref oBookMark[3]).Range.Text = "5";
oDoc.Bookmarks.get_Item(ref oBookMark[4]).Range.Text = "贺州平山开路区33号";
oDoc.Bookmarks.get_Item(ref oBookMark[5]).Range.Text = "CGD123456789";
oDoc.Bookmarks.get_Item(ref oBookMark[6]).Range.Text = "15832665267";
oDoc.Bookmarks.get_Item(ref oBookMark[7]).Range.Text = "A00001";
oDoc.Bookmarks.get_Item(ref oBookMark[8]).Range.Text = "2018/01/01"; Word.Range range = oDoc.Bookmarks.get_Item(ref oBookMark[9]).Range;
Word.Table textTable = oDoc.Tables.Add(range, 3, 8, ref oMissing, ref oMissing); /**表格 水平居中**/
oWord.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
/**表格 外边线**/
textTable.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle; /**设置 表格外边线 行**/
for (int k = 1; k <= 3; k++)
{
textTable.Rows[k].Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
}
/**设置 表格外边线 列**/
for (int k = 1; k <= 8; k++)
{
textTable.Columns[k].Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
if (k == 1)
{
textTable.Columns[k].Width = 40f;
}
} /**垂直居中**/
object unit = Microsoft.Office.Interop.Word.WdUnits.wdLine;
object countjz = 1;
oWord.Selection.MoveEnd(ref unit, ref countjz);
textTable.Select();
oWord.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;//水平居中 /**设置单元格表头**/
textTable.Cell(1, 1).Range.Text = "序号";
textTable.Cell(1, 1).Merge(textTable.Cell(2, 1));//合并得话 是在这里操作
textTable.Cell(1, 2).Range.Text = "条形码";
textTable.Cell(1, 2).Merge(textTable.Cell(2, 2));
textTable.Cell(1, 3).Range.Text = "品名";
textTable.Cell(1, 3).Merge(textTable.Cell(2, 3));
textTable.Cell(1, 4).Range.Text = "规格";
textTable.Cell(1, 4).Merge(textTable.Cell(2, 4));
textTable.Cell(1, 5).Range.Text = "计量单位";
textTable.Cell(1, 5).Merge(textTable.Cell(2, 5));
textTable.Cell(1, 6).Range.Text = "数量";
textTable.Cell(1, 6).Merge(textTable.Cell(2, 6));
textTable.Cell(1, 7).Range.Text = "发货价";
textTable.Cell(1, 7).Merge(textTable.Cell(2, 7));
textTable.Cell(1, 8).Range.Text = "备注";
textTable.Cell(1, 8).Merge(textTable.Cell(2, 8)); textTable.Rows.Select();
/**设置单元格样式 行**/
Word.Range rngCell = null;
for (int i = 1; i <= 8; i++)
{
textTable.Cell(1, i).Height = 20f;//设置 行高
rngCell = textTable.Cell(1, i).Range;
rngCell.Font.Bold = 1;
rngCell.Font.Name = "微软雅黑";
rngCell.Font.Size = 10.5f;
} /**添加 数据行**/
for (int i = 2; i < 3; i++)
{
textTable.Cell(i, 1).Range.Text = (i-1).ToString();
textTable.Cell(i, 2).Range.Text = "1";
textTable.Cell(i, 3).Range.Text = "1";
textTable.Cell(i, 4).Range.Text = "1";
textTable.Cell(i, 5).Range.Text = "1";
textTable.Cell(i, 6).Range.Text = "1";
textTable.Cell(i, 7).Range.Text = "1";
textTable.Cell(i, 8).Range.Text = "1";
} //保存生成的Word
object filename = "d://测试.docx";// 要 绝对路径 保存的位置
oDoc.SaveAs(ref filename, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing);
oDoc.Close(ref oMissing, ref oMissing, ref oMissing);
//关闭word
oWord.Quit(ref oMissing, ref oMissing, ref oMissing);
return ""; }
using Word = Microsoft.Office.Interop.Word; 声明方便使用
这个 之前需要 增加一个 word 模板 放到指定得位置 并在相应节点添加 书签 结合到 增加表单操作, 需要添加 下面得dll

作者注释: 这种方法 必须在服务器上安装 office 套装 才能完成 word 操作(安装需要掏钱得), 可以用 NPOI 相关插件,

直接项目中 管理 NuGet程序包 中搜索 NPOI 直接安装,在做相应操作
C# 后台模块 Word 模板操作的更多相关文章
- jar word 模板操作比较好用的工具
个人觉得比较好用的java word 模板 http://deepoove.com/poi-tl/
- Open Xml SDK Word模板开发最佳实践(Best Practice)
1.概述 由于前面的引文已经对Open Xml SDK做了一个简要的介绍. 这次来点实际的——Word模板操作. 从本质上来讲,本文的操作都是基于模板替换思想的,即,我们通过替换Word模板中指定元素 ...
- Freemaker基于word模板动态导出汇总整理
Freemaker基于word模板动态导出汇总整理 一.使用的jar包: 二.Word模板动态导出的基本思路: 1.首先通过自己在word中创建好需要导出的word文本+表格的模板,模板中需要填写内容 ...
- 第三百零六节,Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置
Django框架,models.py模块,数据库操作——创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, ...
- 四 Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置
Django框架,models.py模块,数据库操作——创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, ...
- C#操作word模板插入文字、图片及表格详细步骤
c#操作word模板插入文字.图片及表格 1.建立word模板文件 person.dot用书签 标示相关字段的填充位置 2.建立web应用程序 加入Microsoft.Office.Interop.W ...
- Csharp 简单操作Word模板文件
原文:Csharp 简单操作Word模板文件 1.创建一个模板的Word文档 Doc1.dot 内容为: To: <Name> Sub:<Subject> Website i ...
- JAVA Asponse.Word Office 操作神器,借助 word 模板生成 word 文档,并转化为 pdf,png 等多种格式的文件
一,由于该 jar 包不是免费的, maven 仓库一般不会有,需要我们去官网下载并安装到本地 maven 仓库 1,用地址 https://www-evget-com/product/564 ...
- [转]C#操作word模板插入文字、图片及表格详细步骤
c#操作word模板插入文字.图片及表格 1.建立word模板文件 person.dot用书签 标示相关字段的填充位置 2.建立web应用程序 加入Microsoft.Office.Interop.W ...
随机推荐
- kerberos认证协议分析
Kerberos认证协议分析 Kerberos认证协议流程 如上图: * 第一步:client和认证服务器(AS)通信完成认证过程,如果认证成功AS返回给client一个TGT(用来向TGS获取tic ...
- Oracle各种表空间
system表空间:含数据字典信息 sysaux表空间:存储各种oracle应用的元数据(如AWR的操作数据) 创建表空间后,不能改变区尺寸 区尺寸管理:自动分配(AUTOALLOCATE):小段64 ...
- 树链剖分-点的分治(点数为k且距离最长的点对)
hdu4871 Shortest-path tree Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 130712/130712 K ( ...
- python知识大全目录,想学的看过来!
Python总结篇——知识大全 python装饰器 PyCharm安装与配置,python的Hello World sort与sorted的区别及实例 我必须得告诉大家的MySQL优化 ...
- mysql误删表,无备份
mysql误删表,无备份 1.操作步骤:https://blog.csdn.net/u011277123/article/details/78018513?tdsourcetag=s_pctim_ai ...
- centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,curl,ping ,telnet,traceroute ,dig ,nc,nmap,host,nethogs 第十六节课
centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,cur ...
- innobackupex 还原和备份实例
InnoDB 和非 InnoDB 文件的备份都是通过拷贝文件来做的,但是实现的方式不同,前者是以page为粒度做的(xtrabackup),后者是 cp 或者 tar 命令(innobackupex) ...
- Spring源码解析(二)BeanDefinition的Resource定位
IOC容器的初始化过程主要包括BeanDefinition的Resource定位.载入和注册.在实际项目中我们基本上操作的都是ApplicationContex的实现,我们比较熟悉的ClassPath ...
- EOS 的网站及资料doc
https://github.com/EOSIO/Documentation/blob/master/zh-CN/Roadmap.md https://bytemaster.github.io/bit ...
- Spark Shuffle调优原理和最佳实践
对性能消耗的原理详解 在分布式系统中,数据分布在不同的节点上,每一个节点计算一部份数据,如果不对各个节点上独立的部份进行汇聚的话,我们计算不到最终的结果.我们需要利用分布式来发挥Spark本身并行计算 ...