word模板生成C#源码

更新时间:2023-11-29 06:11:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Word模板生成C#源码

Word标签生成doc模板:前段时间有项目要用c#生成Word格式的计算报告,通过网络查找到很多内容,但是都很凌乱,于是自己决定将具体的步骤总结整理出来,以便于更好的交流和以后相似问题可以迅速的解决!

现通过具体的示例演示具体的步骤:

第一步,制作模板

1,新建一个文档,文档内容如下:

图1

2,在相应位置插入书签;将鼠标定位到要插入书签的位置,点击“插入”>“书签”,弹出对话框,输入书签名,点击“添加”按钮,书签位置如图3所示

图2

图3

3,保存模板,命名为“模板1.dot”或者“模板1.doc”

图4

第二步,设置项目中的引用

1,右击“解决方案资源管理器”中的项目目录下的“引用”,选择“添加引用”,打开“添加引用”对话框

图5

2,在“添加引用”对话框中,选择“COM”>“Microsoft Word 11.0 Object Library”,点击“确定”按钮

图6

3,相同操作打开“添加引用”对话框中,选择“浏览”项,查找到”Microsoft.Office.Interop.Word.dll”文件,选中它,点击“确定”按钮

图7

注意:此处要查找的“Microsoft.Office.Interop.Word.dll”版本必须为“11.*.*.*”,“*”代表数字

第三步,编码

这一步分成两个部分

第一部分,Report类的编码

这部分我已经封装好,为文件“Report.cs”,可以直接使用 代码如下:(有比较详细的注释)

using System;

using System.Collections.Generic; using System.Text;

using Microsoft.Office.Interop.Word;

namespace MYNAMESPACE //这边需要换成自己的命名空间名 {

class Report {

private _Application wordApp = null; private _Document wordDoc = null; public _Application Application {

get {

return wordApp; } set

{

wordApp = value; } }

public _Document Document {

get {

return wordDoc; } set {

wordDoc = value; } }

//通过模板创建新文档

public void CreateNewDocument(string filePath) {

killWinWordProcess();

wordApp = new ApplicationClass();

wordApp.DisplayAlerts = WdAlertLevel.wdAlertsNone; wordApp.Visible = false;

object missing = System.Reflection.Missing.Value; object templateName = filePath;

wordDoc = wordApp.Documents.Open(ref templateName, ref missing,

ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); }

//保存新文件

public void SaveDocument(string filePath) {

object fileName = filePath;

object format = WdSaveFormat.wdFormatDocument;//保存格式 object miss = System.Reflection.Missing.Value; wordDoc.SaveAs(ref fileName, ref format, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);

//关闭wordDoc,wordApp对象

object SaveChanges = WdSaveOptions.wdSaveChanges;

object OriginalFormat = WdOriginalFormat.wdOriginalDocumentFormat; object RouteDocument = false;

wordDoc.Close(ref SaveChanges, ref OriginalFormat, ref RouteDocument); wordApp.Quit(ref SaveChanges, ref OriginalFormat, ref RouteDocument); }

//在书签处插入值

public bool InsertValue(string bookmark, string value) {

object bkObj = bookmark;

if (wordApp.ActiveDocument.Bookmarks.Exists(bookmark))

本文来源:https://www.bwwdw.com/article/ocjt.html

Top