在命令提示符下以“比较文档”模式打开Microsoft Word

时间:2010-04-09 09:59:52

标签: command-line ms-word

我正在开发一个Web项目,其中客户端需要一个功能,首先上传一些MS Word文档&然后他可以比较任何两个上传的文件。

我想出的想法是首先使用WEBDAV& amp;然后使用带有“并排比较”选项的命令行打开两个文档。通过这种方式,他将能够比较和修改两个文件。

问题是,我无法找到任何可以从命令提示符运行的命令,以便在比较模式下打开两个文档。

此外,如果您知道任何其他方式来实现此功能,请与我分享。

3 个答案:

答案 0 :(得分:6)

这可能是一种方法(对于Visual Studio 2010)

我将以下两个链接混合在一起

http://social.msdn.microsoft.com/Forums/en-US/b7f4b480-ca1c-49a1-a2ea-b1d1cf5ad56b/how-do-you-compare-two-word-documents-in-c

http://msdn.microsoft.com/en-us/library/vstudio/ee342218%28v=vs.100%29.aspx

到我添加的C#控制台项目添加了参考: .NET - > Microsoft.Office.Interop.Word版本14.0.0.0

这里是来源:

的Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Word = Microsoft.Office.Interop.Word;
//using Office = Microsoft.Office.Core;
//using Microsoft.Office.Tools.Word;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Word.Application wordApp = new Word.Application();
            wordApp.Visible = false;
            object wordTrue = (object)true;
            object wordFalse = (object)false;
            object fileToOpen = @"C:\Temp\1.docx";
            object missing = Type.Missing;
            Word.Document doc1 = wordApp.Documents.Open(ref fileToOpen,
                   ref missing, ref wordFalse, ref wordFalse, ref missing,
                   ref missing, ref missing, ref missing, ref missing,
                   ref missing, ref missing, ref wordTrue, ref missing,
                   ref missing, ref missing, ref missing);

            object fileToOpen1 = @"C:\Temp\2.docx";
            Word.Document doc2 = wordApp.Documents.Open(ref fileToOpen1,
                   ref missing, ref wordFalse, ref wordFalse, 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.Document doc = wordApp.CompareDocuments(doc1, doc2, Word.WdCompareDestination.wdCompareDestinationNew, Word.WdGranularity.wdGranularityWordLevel,
                true, true, true, true, true, true, true, true, true, true, "", true);

            doc1.Close(ref missing,ref missing,ref missing);
            doc2.Close(ref missing,ref missing,ref missing);
            wordApp.Visible = true;
        }

    }
}

TODO:

  • 将1.docx和2.docx替换为命令行中的字符串
  • 可能是一些异常处理

答案 1 :(得分:1)

我查看了command line switches的列表,但我没有看到任何相关内容。

您可以在.net中创建一个控制台应用程序,用于打开Word,加载2个文档并将Word切换到比较文档视图模式。不是直接从命令行启动Word,而是启动应用程序。

答案 2 :(得分:1)

有一个项目使用PowerShell脚本ExtDiff执行此操作:https://github.com/ForNeVeR/ExtDiff