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 模板操作的更多相关文章

  1. jar word 模板操作比较好用的工具

    个人觉得比较好用的java word 模板 http://deepoove.com/poi-tl/

  2. Open Xml SDK Word模板开发最佳实践(Best Practice)

    1.概述 由于前面的引文已经对Open Xml SDK做了一个简要的介绍. 这次来点实际的——Word模板操作. 从本质上来讲,本文的操作都是基于模板替换思想的,即,我们通过替换Word模板中指定元素 ...

  3. Freemaker基于word模板动态导出汇总整理

    Freemaker基于word模板动态导出汇总整理 一.使用的jar包: 二.Word模板动态导出的基本思路: 1.首先通过自己在word中创建好需要导出的word文本+表格的模板,模板中需要填写内容 ...

  4. 第三百零六节,Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置

    Django框架,models.py模块,数据库操作——创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, ...

  5. 四 Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置

    Django框架,models.py模块,数据库操作——创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, ...

  6. C#操作word模板插入文字、图片及表格详细步骤

    c#操作word模板插入文字.图片及表格 1.建立word模板文件 person.dot用书签 标示相关字段的填充位置 2.建立web应用程序 加入Microsoft.Office.Interop.W ...

  7. Csharp 简单操作Word模板文件

    原文:Csharp 简单操作Word模板文件 1.创建一个模板的Word文档  Doc1.dot 内容为: To: <Name> Sub:<Subject> Website i ...

  8. JAVA Asponse.Word Office 操作神器,借助 word 模板生成 word 文档,并转化为 pdf,png 等多种格式的文件

    一,由于该 jar 包不是免费的, maven 仓库一般不会有,需要我们去官网下载并安装到本地 maven 仓库 1,用地址   https://www-evget-com/product/564  ...

  9. [转]C#操作word模板插入文字、图片及表格详细步骤

    c#操作word模板插入文字.图片及表格 1.建立word模板文件 person.dot用书签 标示相关字段的填充位置 2.建立web应用程序 加入Microsoft.Office.Interop.W ...

随机推荐

  1. 高中生的IT之路-1.5西餐厅服务生

    之所以说漫长的求职,是因为培训结束后半年左右没有找到工作. 每次面试结束后,得到的都是“回去等消息”,然后就杳无音信了.一次次的面试,一次次的失败,一次次查找失败的原因.总结来看主要有两点:一是没有工 ...

  2. 【BZOJ4554】[Tjoi2016&Heoi2016]游戏 二分图最大匹配

    [BZOJ4554][Tjoi2016&Heoi2016]游戏 Description 在2016年,佳缘姐姐喜欢上了一款游戏,叫做泡泡堂.简单的说,这个游戏就是在一张地图上放上若干个炸弹,看 ...

  3. c# Socket通信基础

     一.IP地址操作类   1.IPAddress类 a.在该类中有一个 Parse()方法,可以把点分的十进制IP表示转化成IPAddress类,方法如下: IPAddress address = I ...

  4. (贪心)kruskal思想

    hdu4313 Matrix Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  5. rk3188 双屏异显分析

      首先是android层: PhoneWindow.java 中加入了GestureDetector成员, 来实现全局滑屏手势监听 onFling方法中,调用了mDecor.getRootWindo ...

  6. nginx:正向代理和反向代理

    一.正向代理 原理:正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器).为了从目标服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得 ...

  7. SpringCloud 进阶之Zuul(路由网关)

    1. Zuul(路由网关) Zuul 包含了对请求的路由和过滤两个最主要的功能; 路由功能:负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础; 过滤功能:负责对请求的处理过程进行干 ...

  8. Python开发【笔记】:为什么pymysql重连后才能查到新添加的数据

    PyMysql操控 问题描述: 之前做数据库模块的时候用到了pymysql,测试中发现了一个问题,创建两个程序,select.py从数据库中不断的读取,insert.py在数据库中插入多条数据,但是s ...

  9. MVC项目,bootstrap升级后index.d.ts编译出错

    安装最新的Typescript组件 下载链接 https://www.microsoft.com/en-us/download/details.aspx?id=48593

  10. CF909F AND-permutations 构造

    正解:构造 解题报告: 传送门! QAQ我jio得还挺难的,,,构造+数论什么的果然还是不适合灵巧这种菜菜啊QAQ 不过理解了的话也就没有那么难?所以还是港下QAQ 首先看task1 首先要发现一个, ...