asp.net下将页面内容导入到word模板中的方法

 更新时间:2010年10月20日 19:04:23   作者:  
asp.net下将页面内容导入到word模板中的方法,需要的朋友可以参考下。
1,新建word模版,方法是找需要用程序填充的word文档,在需要输入的地方用"书签"(插入-->书签-->输入id-->ok)标记后保存既可.
2,在word模版上修改安全添加everyone 可读,以防文件无法打开.
3,在工程里添加"引用"找到"Microsoft Word 10.0 Object Library"或"Microsoft Word 11.0 Object Library"点确定.
4,新建类叫WordOp.cs 意思是操作word的类.
内容如下:
复制代码 代码如下:

using System;
using System.Web.Security;
using Microsoft.Office.Interop.Word;
using System.IO;
/// <summary>
/// Word 的摘要说明
/// </summary>
public class WordOp
{
public WordOp()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private ApplicationClass WordApp ;
private Document WordDoc;
private static bool isOpened=false;//判断word模版是否被占用
public void SaveAs(string strFileName,bool isReplace)
{
if (isReplace && File.Exists(strFileName))
{
File.Delete(strFileName);
}
object missing = Type.Missing;
object fileName = strFileName;
WordDoc.SaveAs(ref fileName, 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);
}
//定义一个Word.Application 对象
public void activeWordApp()
{
WordApp = new ApplicationClass();
}
public void Quit()
{
object missing = System.Reflection.Missing.Value;
WordApp.Application.Quit(ref missing, ref missing, ref missing);
isOpened = false;
}
//基于模版新建Word文件
public void OpenTempelte(string strTemppath)
{
object Missing = Type.Missing;
//object Missing = System.Reflection.Missing.Value;
activeWordApp();
WordApp.Visible = false;
object oTemplate = (object)strTemppath;
try
{
while (isOpened)
{
System.Threading.Thread.Sleep(500);
}
WordDoc = WordApp.Documents.Add(ref oTemplate, ref Missing, ref Missing, ref Missing);
isOpened = true;
WordDoc.Activate();
}
catch (Exception Ex)
{
Quit();
isOpened = false;
throw new Exception(Ex.Message);
}
}
public void FillLable(string LabelId,string Content)
{
//打开Word模版
// OpenTempelte(tempName); //对LabelId的标签进行填充内容Content,即函件题目项
object bkmC = LabelId;
if (WordApp.ActiveDocument.Bookmarks.Exists(LabelId) == true)
{
WordApp.ActiveDocument.Bookmarks.get_Item(ref bkmC).Select();
}
WordApp.Selection.TypeText(Content);
//SaveAs(saveAsFileName);
//Quit();
}
}

5,在需要使用的页面后台调用既可,举例如下:
复制代码 代码如下:

string path = Server.MapPath("download");
string templatePath = path + "file://downloadczql.doc/";
WordOp wop = new WordOp();
wop.OpenTempelte(templatePath);
wop.FillLable("id", "1");
wop.FillLable("usr_name", "测试");
wop.SaveAs(path + "file://savetest.doc",true/);
wop.Quit();
Response.redirect(@"/download/savetest.doc");//做个跳转用于下载.

相关文章

  • 获取客户端IP地址c#/vb.net各自实现代码

    获取客户端IP地址c#/vb.net各自实现代码

    项目要求获取客户端的IP地址,分析并且用c#与vb各自实现了此要求,有需要的朋友可以了解下啊,希望本文对你们有所帮助
    2013-01-01
  • asp.net模板引擎Razor中cacheName的问题分析

    asp.net模板引擎Razor中cacheName的问题分析

    这篇文章主要介绍了asp.net模板引擎Razor中cacheName的问题,实例分析了cacheName在提高编译效率方面的使用技巧,需要的朋友可以参考下
    2015-06-06
  • ASP.NET Web Page应用深入探讨

    ASP.NET Web Page应用深入探讨

    这些内容是我在学习ASP.Net的时候对Page研究的一些心得,具体的细节没有很详细的探讨,更多的内容请大家参考MSDN,但是我举了一些初学者常犯的错误和出现错误的原因,希望可以给大家带来启发。
    2009-08-08
  • asp.net SqlDataAdapter对象使用札记

    asp.net SqlDataAdapter对象使用札记

    如果 DataAdapter 遇到多个结果集,它将在 DataSet 中创建多个表。将向这些表提供递增的默认名称 TableN,以表示 Table0 的“Table”为第一个表名。
    2009-04-04
  • c# 可变数目参数params实例

    c# 可变数目参数params实例

    一般来说,参数个数都是固定的,定义为集群类型的参数可以实现可变数目参数的目的,但是.NET提供了更灵活的机制来实现可变数目参数,这就是使用params修饰符
    2012-11-11
  • 使用ASP.NET操作IIS7中应用程序

    使用ASP.NET操作IIS7中应用程序

    IIS7的操作和IIS5/6有很大的不同,在IIS7里增加了 Microsoft.Web.Administration 命名空间里,增加了ServerManager、Site几个大类来操作IIS7。本文主要介绍.NET对IIS7的操作。
    2015-10-10
  • .Net Core日志记录之第三方框架Serilog

    .Net Core日志记录之第三方框架Serilog

    这篇文章介绍了.Net Core日志记录之第三方框架Serilog,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • asp .net core静态文件资源的深入讲解

    asp .net core静态文件资源的深入讲解

    这篇文章主要给大家介绍了关于asp .net core静态文件资源的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • ASP.NET线程相关配置

    ASP.NET线程相关配置

    ASP.NET 同一时刻只能发起的工作线程数量
    2012-12-12
  • 上传图片前判断文件格式与大小验证文件是不是图片

    上传图片前判断文件格式与大小验证文件是不是图片

    既然上传的是图片,那么就应该在上传之前对文件进行一下验证,看看要上传的是不是图片文件
    2014-03-03

最新评论