asp.net中C# 操作Word批量替换

首先引入Microsoft.Office.Interop.Word组件,该组件在安装完office后在COM中出现

 

 代码如下 复制代码

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;

namespace TextReplace
{
    public class WordOperate : IDisposable
    {
        private Microsoft.Office.Interop.Word._Application _app;
        private Microsoft.Office.Interop.Word._Document _doc;
        object _nullobj = System.Reflection.Missing.Value;

        /// <summary>
        /// 关闭Word进程
        /// </summary>
        public void KillWinword()
        {
            var p = Process.GetProcessesByName("WINWORD");
            if (p.Any()) p[0].Kill();
        }

        /// <summary>
        /// 打开word文档
        /// </summary>
        /// <param name="filePath"></param>
        public void Open(string filePath)
        {

            _app = new Microsoft.Office.Interop.Word.ApplicationClass();
            object file = filePath;
            _doc = _app.Documents.Open(
                 ref file, ref _nullobj, ref _nullobj,
                 ref _nullobj, ref _nullobj, ref _nullobj,
                 ref _nullobj, ref _nullobj, ref _nullobj,
                 ref _nullobj, ref _nullobj, ref _nullobj,
                 ref _nullobj, ref _nullobj, ref _nullobj, ref _nullobj);
        }

        /// <summary>
        /// 替换word中的文字
        /// </summary>
        /// <param name="strOld">查找的文字</param>
        /// <param name="strNew">替换的文字</param>
        public void Replace(string strOld, string strNew)
        {
            _app.Selection.Find.ClearFormatting();
            _app.Selection.Find.Replacement.ClearFormatting();
            _app.Selection.Find.Text = strOld;
            _app.Selection.Find.Replacement.Text = strNew;

            object objReplace = Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll;
            _app.Selection.Find.Execute(ref _nullobj, ref _nullobj, ref _nullobj,
                                       ref _nullobj, ref _nullobj, ref _nullobj,
                                       ref _nullobj, ref _nullobj, ref _nullobj,
                                       ref _nullobj, ref objReplace, ref _nullobj,
                                       ref _nullobj, ref _nullobj, ref _nullobj);
        }

        /// <summary>
        /// 保存
        /// </summary>
        public void Save()
        {
            _doc.Save();
        }

        /// <summary>
        /// 退出
        /// </summary>
        public void Dispose()
        {
            _doc.Close(ref _nullobj, ref _nullobj, ref _nullobj);
            _app.Quit(ref _nullobj, ref _nullobj, ref _nullobj);
        }
    }
}

时间: 2024-10-01 01:57:06

asp.net中C# 操作Word批量替换的相关文章

编程操作Word 查找 替换 图片

在VB6.0中,操作word,使用它强大的查找.替换.删除.复制.翦切功能.还可以把特定字符替换成图片.有了它你就可以使用数据库中的内容或图片文件替换word文件中的特定字符. 只要把下列内容复制到写字板中,另存为SetWord.cls文件,然后在把它添加到工程中,就可以使用了. VERSION 1.0 CLASSBEGINMultiUse = -1 'TruePersistable = 0 'NotPersistableDataBindingBehavior = 0 'vbNoneDataSo

jacob的问题,我在操作word,替换文字的时候,第一次调用可以成功,第二次调用就没有效果了

问题描述 jacob的问题,我在操作word,替换文字的时候,第一次调用可以成功,第二次调用就没有效果了 package com.hundsun.cby.htblthsz; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.ComThread; import com.jacob.com.Dispatch; import com.jacob.com.Variant; public class HtblthszUtil {

初始化-java中jacob操作word文档

问题描述 java中jacob操作word文档 org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.ExceptionInInitializerError Caused by: java.lang.ExceptionInInitializerError Caused by: java.lang.IllegalStateExcept

asp.net中动态生成word文档,怎么给导出的word中标题栏的加个背景颜色。

问题描述 asp.net中动态生成word文档,怎么给导出的word中标题栏的加个背景颜色. asp.net中动态生成word文档,怎么给 导出 的word中标题栏的加个背景颜色.

在ASP.NET中使用Microsoft Word文档

asp.net|microsoft|word 本文是应在ASP.NET里创建Microsoft Word文档之需而写的.这篇文章演示了在ASP.NET里怎么创建和修改Microsoft Word文档. [背景] 自动化是一种能让各种语言编写的(如:Visual Basic.NET或C#)应用程序在程序级别上控制其他应用程序. 对于Word的自动化允许你执行诸如创建新的文档,向文档里添加文本,邮件合并和格式化文档这些操作.在Word和其他的Microsoft Office程序里,那些通过用户接口进

ASP.NET中数据库操作初步_自学过程

一.定义OleDbCommand类型变量:MyCommand 要对数据库进行增加.删除.修改的操作我们还需要根据MyConnectio的类型定义一个OleDbCommand或者SqlCommand对象(请注意如果MyConnection是OleDbConnection类型,那么只能用OleDbCommand:如果MyConnection是SqlConnection类型,那么那么只能用SqlCommand.这里假设MyConnection是OleDbConnection类). 方法一 你可以象拖放

C# 操作Word ,替换文档中指定文字

问题描述 参考网上资源,写了一小段程序,用来替换指定文件夹下若干个word文档中的指定字段,程序运行没什么错误,但是当一个文档超过两页之后,此文档中的文字就不会被替换掉,而一页的文档中的会成功替换掉.检查了好长时间也不知道是什么问题,请教各位高手,帮帮我...privatevoidWordReplace(stringfilePath,stringstrOld,stringstrNew){Microsoft.Office.Interop.Word._Applicationapp=newMicros

Asp.Net中Excel操作权限的问题

近日在打开原来写的一个网页程序运行时,出现了Excel操作权限的问题,具体的说就是在代码中调用下面这段与Excel操作有关的语句时, Application curExcelApp = new ApplicationClass(); 提示权限不足,具体的提示内容如下: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005. 说明: 执行当前 Web 请求期间,出现未处理的异常.请

sqlserver 中ntext字段的批量替换(updatetext的用法)

一.问题描述: 1.在Sql Server 中,ntext/text/image 字段不允许应用replace函数替换内容: 2.通过convert字段转换,可以把ntext字段转换为varchar(8000),然后用Relpace函数替换,不过,此方法,对于字段长度大于8000的ntext字段无效. 二.问题解决 整理通用存储过程,代码如下: 复制代码 代码如下: CREATE procedure [dbo].[Proc_UpdateNTextField] @TargetTable nvarc