比对两个Word文件内容是否一致的C#解决办法

using System;
using System.Windows.Forms;
using System.Diagnostics;
using Microsoft.Office.Interop.Word;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //加载之前首先判断系统中是否包含WORD.EXE进程,如果包含,将其杀死,然后再进行查看
            KillProcess();

            MessageBox.Show(CompareWordFile(@"C:\1.DOC", @"C:\2.DOC").ToString());
        }

        public bool CompareWordFile(String source, String target)
        {
            object filename = source;
            var targetFileName = target;
            object missing = System.Reflection.Missing.Value;
            object readonlyobj = false;
            var app = new ApplicationClass { Visible = false };
            var doc = app.Documents.Open(ref filename, ref missing, ref readonlyobj, ref missing,
                ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
            doc.TrackRevisions = true;
            doc.ShowRevisions = true;
            doc.PrintRevisions = true;
            object comparetarget = WdCompareTarget.wdCompareTargetNew;
            doc.Compare(targetFileName, ref missing, ref comparetarget, ref missing, ref missing, ref missing, ref missing, ref missing);
            var changeCount = app.ActiveDocument.Revisions.Count;
            Object saveChanges = WdSaveOptions.wdDoNotSaveChanges;
            doc.Close(ref saveChanges, ref missing, ref missing);
            app.Quit(ref saveChanges, ref missing, ref missing);
            return changeCount == 0;
        }

        public void KillProcess()
        {
            const string processName = "WINWORD";
            var process = Process.GetProcessesByName(processName);
            try
            {
                foreach (var p in process)
                {
                    p.Kill();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("请先关闭系统中的WINWORD.EXE进程!", "文件对比失败", MessageBoxButtons.OK);
                return;
            }
        }
    }
}

比对两个Word文件内容是否一致的C#解决办法

时间: 2025-01-22 11:52:58

比对两个Word文件内容是否一致的C#解决办法的相关文章

如何在浏览器网页中显示word文件内容

如何在浏览器网页中显示word文件内容 把word文件读到byte[]中,再Response.OutputStream.Write(bytes)到客户端去 Page_Load事件中写: //FileStream   fs   =   new   FileStream("c:\\1.doc",   FileMode.Open,   FileAccess.Read);  FileStream fs = new FileStream(Server.MapPath("files\\1

Python3实现两个Excel文件内容比对

最近在工作中,需要人工比对大量的excel格式报表,刚好刚学了Pyhon入门基础知识,想着写个东西练练手,不但能提高代码编写能力,还能减轻工作量,提高工作效率.说干就干,简单的理了逻辑.首先,将目标表和源表的内容分别写入到字典中,Excel表中不确定有没有字段是唯一值,所以选择了行号作为key值,一行的内容放到list中,然后从源表中取一行去目标表中遍历.想好之后开始敲代码了,在代码编写过程中遇到很多的问题,都是遇到一个查一个.基本的比对功能实现后,就想着在加个日志记录下比对结果.写下此文记录下

echarts2.0.2单文件引入,不能require的解决办法

起因是我在画y轴的标题时,不能显示上标,米<sup>3</sup>  会显示   米3 ! 问过林峰,他说这是基于canvas,不是基于svg或html,所以不能处理这个.然后就想用zrender画出这个字.我只需要解决上标的问题就够了! 然后看了文档,说是引入单文件的js后,可以直接使用两个全局的命名空间:echarts,zrender,其它需要require引入 .zrender.tool.color = require('zrender/tool/color')  .其它就是

cocos2d-x笔记4: TextField不能删除内容,以及我的解决办法。。。

3.0正式版,win32下,TextField按下backspace键不能删除内容.网上搜了下,很早就有的问题了,正式版了竟然还不解决...真心无力吐槽啊!!!这种巨大而又明显的Bug... 从昨天突发奇想用Cocos2d做软件开始,经历了太多的摧残,简直听者伤心,闻者落泪... 已经去Cocoachina论坛反馈了,虽然基本白费口舌...思路就是监听按键事件,调用setText修改内容... 1 auto listener = EventListenerKeyboard::create();

Windows下文件或文件夹不能删除时的解决办法

windows xp在删除文件或文件夹时,提示文件或文件夹被占用而无法删除 解决办法:win7: winxp:需要借助第三方工具Unlocker.360.Process Explorer(这个是微软支持的)通过工具找到占用文件或文件夹的进程后,结束此进程即可 以Process Explorer为例: https://download.sysinternals.com/files/ProcessExplorer.ziphttps://technet.microsoft.com/en-us/sysi

android 读取DDMS里的文件时打不开,解决办法

1.问题:安卓自带数据库SQLite数据读取时(ddms---data----data----yourprojectname----databases),当点击data时目录展不开.从而无法查看数据库表中的数据. 2.方法:第一获得ROOT权限,如何获得root权限?我下载了一个一键root工具,挺好用的 (muzisoft.exe)安装在电脑上,并连接手机.点击一键root,等几分钟即可. 3.修改要查看文件的权限,下载一个RE(R.E管理器)并安装在手机上,运行,长按要查看的文件,在弹出的列

sqlserver 出现 因为文件组 &#39;PRIMARY&#39; 已满 的解决办法 有可能是磁盘剩余空间不足 导致的

一般虚拟主机提供商是通过限制数据库文件的大小来实现提供定制的数据库空间的.当你把从虚拟数据库空间备份下来的文件恢复到自己的服务器上时,这个限制还是存在的.找到数据库文件 给增加个数据文件就好了 解决办法: 1.检查你的磁盘剩余空间是否足够,如果没有磁盘剩余空间,则清理磁盘,腾出空间. 2.检查你的磁盘分区格式:如果是FAT16,则数据文件最大只能是2G,如果是FAT32,则数据文件最大只能是4G,改为NTFS分区则没有这种限制. 3.检查一下你有没有限制数据库文件的大小: 企业管理器--右键你的

eclipse编辑jsp文件和javascript代码很卡解决办法

1.Window -> Preference -> General -> Editors -> Text Editors -> HyperLinking -> 在用Ctrl键控制的HyperLinking Style Nevigation列表下, 取消勾选与JPS或Javascript有关的选项 2.关闭eclipse 对于js的自动提示,避免eclipse响应缓慢和崩溃 Windows -->Preference -->JavaScript -->E

sublime text2 打开包含中文的文件会自动追加.dump后缀解决办法

用sublime text2 打开.c, .h,.txt等文件会自动追加一个.dump后缀,這样在打开.c,.h等文件时无法正常识别,从而无法正常进行语法着色,网上说是因为安装了GBK Encoding Support 插件的问题,于是就删除这个插件,发现再打开不会自动加.dump后缀了,但是遇到中文就乱码了, 因为GBK-.,这个插件就是解决中文乱码用的,那怎么办呢? 其实只要重新保存一下就可以了,比如我打开一个A.h文件,这个里有中文注释, 第一次打开时因为有中文所以sublime text