C#实现通过模板自动创建Word文档的方法
2016-05-16 15:20
666 查看
这篇文章主要介绍了C#实现通过模板自动创建Word文档的方法,详细讲述了C#生成Word文档的实现方法,是非常实用的技巧,需要的朋友可以参考下
本文实例讲述了C#实现通过模板自动创建Word文档的方法,是非常实用的技巧。分享给大家供大家参考。具体实现方法如下:
引言:前段时间有项目要用c#生成Word格式的计算报告,通过网络查找到很多内容,但是都很凌乱,于是自己决定将具体的步骤总结整理出来,以便于更好的交流和以后相似问题可以迅速的解决!
现通过具体的示例演示具体的步骤:
第一步,制作模板
1.新建一个文档,设置文档内容。
2.在相应位置插入书签;将鼠标定位到要插入书签的位置,点击“插入”>“书签”,弹出对话框,输入书签名,点击“添加”按钮。
3.保存模板,命名为“模板1.dot”或者“模板1.doc”
第二步,设置项目中的引用
1.右击“解决方案资源管理器”中的项目目录下的“引用”,选择“添加引用”,打开“添加引用”对话框
2.在“添加引用”对话框中,选择“COM”>“Microsoft Word 11.0 Object Library”,点击“确定”按钮
3.相同操作打开“添加引用”对话框中,选择“浏览”项,查找到”Microsoft.Office.Interop.Word.dll”文件,选中它,点击“确定”按钮
注意:此处要查找的“Microsoft.Office.Interop.Word.dll”版本必须为“11.*.*.*”,“*”代表数字
第三步,编码
这一步分成两个部分
第一部分,Report类的编码
这部分我已经封装好,为文件“Report.cs”,可以直接使用
具体实现代码如下:(代码中有比较详细的注释)
第二部分,具体生成文档的编码
代码见下文:
1.首先需要载入模板
Report report =new Report();
report.CreateNewDocument(TemPath); //模板路径
2.插入一个值
report.InsertValue("Bookmark_value","世界杯");//在书签“Bookmark_value”处插入值
3.创建一个表格
Table table =report.InsertTable("Bookmark_table", 2, 3, 0); //在书签“Bookmark_table”处插入2行3列行宽最大的表
4.合并单元格
report.MergeCell(table, 1, 1, 1, 3); //表名,开始行号,开始列号,结束行号,结束列号
5.表格添加一行
report.AddRow(table); //表名
6.在单元格中插入值
report.InsertCell(table, 2, 1,"R2C1");//表名,行号,列号,值
7.设置表格中文字的对齐方式
report.SetParagraph_Table(table, -1, 0);//水平方向左对齐,垂直方向居中对齐
8.设置表格字体
report.SetFont_Table(table,"宋体", 9);//宋体9磅
9.给现有的表格添加一行
report.AddRow(1);//给模板中第一个表格添加一行
10.确定现有的表格是否使用边框
report.UseBorder(1,true); //模板中第一个表格使用实线边框
11.给现有的表格添加多行
report.AddRow(1, 2);//给模板中第一个表格插入2行
12.给现有的表格插入一行数据
string[] values={"英超", "意甲", "德甲","西甲", "法甲" };
report.InsertCell(1, 2, 5,values); //给模板中第一个表格的第二行的5列分别插入数据
13.插入图片
string picturePath = @"C:\Documents and Settings\Administrator\桌面\1.jpg";
report.InsertPicture("Bookmark_picture",picturePath, 150, 150); //书签位置,图片路径,图片宽度,图片高度
14.插入一段文字
string text = "长期从事电脑操作者,应多吃一些新鲜的蔬菜和水果,同时增加维生素A、B1、C、E的摄入。为预防角膜干燥、眼干涩、视力下降、甚至出现夜盲等,电 脑操作者应多吃富含维生素A的食物,如豆制品、鱼、牛奶、核桃、青菜、大白菜、空心菜、西红柿及新鲜水果等。";
report.InsertText("Bookmark_text",text);
15.最后保存文档
report.SaveDocument(RepPath); //文档路径
第四步,运行程序生成文档,并查看生成的文档
希望本文所述对大家的C#程序设计有所帮助。
本文实例讲述了C#实现通过模板自动创建Word文档的方法,是非常实用的技巧。分享给大家供大家参考。具体实现方法如下:
引言:前段时间有项目要用c#生成Word格式的计算报告,通过网络查找到很多内容,但是都很凌乱,于是自己决定将具体的步骤总结整理出来,以便于更好的交流和以后相似问题可以迅速的解决!
现通过具体的示例演示具体的步骤:
第一步,制作模板
1.新建一个文档,设置文档内容。
2.在相应位置插入书签;将鼠标定位到要插入书签的位置,点击“插入”>“书签”,弹出对话框,输入书签名,点击“添加”按钮。
3.保存模板,命名为“模板1.dot”或者“模板1.doc”
第二步,设置项目中的引用
1.右击“解决方案资源管理器”中的项目目录下的“引用”,选择“添加引用”,打开“添加引用”对话框
2.在“添加引用”对话框中,选择“COM”>“Microsoft Word 11.0 Object Library”,点击“确定”按钮
3.相同操作打开“添加引用”对话框中,选择“浏览”项,查找到”Microsoft.Office.Interop.Word.dll”文件,选中它,点击“确定”按钮
注意:此处要查找的“Microsoft.Office.Interop.Word.dll”版本必须为“11.*.*.*”,“*”代表数字
第三步,编码
这一步分成两个部分
第一部分,Report类的编码
这部分我已经封装好,为文件“Report.cs”,可以直接使用
具体实现代码如下:(代码中有比较详细的注释)
第二部分,具体生成文档的编码
代码见下文:
1.首先需要载入模板
Report report =new Report();
report.CreateNewDocument(TemPath); //模板路径
2.插入一个值
report.InsertValue("Bookmark_value","世界杯");//在书签“Bookmark_value”处插入值
3.创建一个表格
Table table =report.InsertTable("Bookmark_table", 2, 3, 0); //在书签“Bookmark_table”处插入2行3列行宽最大的表
4.合并单元格
report.MergeCell(table, 1, 1, 1, 3); //表名,开始行号,开始列号,结束行号,结束列号
5.表格添加一行
report.AddRow(table); //表名
6.在单元格中插入值
report.InsertCell(table, 2, 1,"R2C1");//表名,行号,列号,值
7.设置表格中文字的对齐方式
report.SetParagraph_Table(table, -1, 0);//水平方向左对齐,垂直方向居中对齐
8.设置表格字体
report.SetFont_Table(table,"宋体", 9);//宋体9磅
9.给现有的表格添加一行
report.AddRow(1);//给模板中第一个表格添加一行
10.确定现有的表格是否使用边框
report.UseBorder(1,true); //模板中第一个表格使用实线边框
11.给现有的表格添加多行
report.AddRow(1, 2);//给模板中第一个表格插入2行
12.给现有的表格插入一行数据
string[] values={"英超", "意甲", "德甲","西甲", "法甲" };
report.InsertCell(1, 2, 5,values); //给模板中第一个表格的第二行的5列分别插入数据
13.插入图片
string picturePath = @"C:\Documents and Settings\Administrator\桌面\1.jpg";
report.InsertPicture("Bookmark_picture",picturePath, 150, 150); //书签位置,图片路径,图片宽度,图片高度
14.插入一段文字
string text = "长期从事电脑操作者,应多吃一些新鲜的蔬菜和水果,同时增加维生素A、B1、C、E的摄入。为预防角膜干燥、眼干涩、视力下降、甚至出现夜盲等,电 脑操作者应多吃富含维生素A的食物,如豆制品、鱼、牛奶、核桃、青菜、大白菜、空心菜、西红柿及新鲜水果等。";
report.InsertText("Bookmark_text",text);
15.最后保存文档
report.SaveDocument(RepPath); //文档路径
第四步,运行程序生成文档,并查看生成的文档
希望本文所述对大家的C#程序设计有所帮助。
相关文章推荐
- C#生成World文档
- 将C#文档注释生成.chm帮助文档
- C# 调用中通快递查询物流轨迹接口
- C#学习笔记之File类
- C#详解反射
- [转载]C#4.0中的可选参数和命名参数
- 【205】C#实现远程桌面访问
- C# using
- c# 使用递归 循环遍历导航树结构 并解析
- 研华IO卡C#调用
- C# 使用ColorMatrix时各种效果的参数
- C# Windows API
- C#和.NET框架和术语
- C#中Invoke 和 BeginInvoke 的区别
- C#多线程的异步委托/调用
- C#多线程编程
- C#6.1.2.4输出参数
- c#中关于virtual,override和new的理解
- C# + Socket断线重连
- C#冒泡排序实例1