3

由于太可怕而无法提及的原因,我希望能够在 Wine 下进行 MS Office 自动化。然而,下面的 noddy 程序无法从 WinWord 的实例中获取文档对象,尽管在 wine 下运行的 WinWord 已成功打开该文档。

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Interop.Word;

// This code is lifted from http://www.dotnetperls.com/word

namespace WordTest
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length < 1)
            {
                Console.WriteLine("Usage WordTest word.doc");
                return;
            }
            String docname = args[0];
            try
            {
                Application application = new Application();
                Document document = application.Documents.Open(docname);

                // Loop through all words in the document. (We get an exception here)
                int count = document.Words.Count;
                for (int i = 1; i <= count; i++)
                {
                    // Write the word.
                    string text = document.Words[i].Text;
                    Console.WriteLine("Word {0} = {1}", i, text);
                }
                // Close word.
                application.Quit();
           }
           catch (Exception e)
           {
                Console.WriteLine("Exception {0}\nStacktrace\n{1}", e.Message, e.StackTrace);

           }
       }
   }
}

我尝试使用这些东西(不是上面的简单代码)的事情不能使用 OpenOffice 或 Apache POI 等来完成。

有任何想法吗?

这可能是相关的:

构建此应用程序的 .NET 版本是 2

WinWord的版本是2007

wine 的版本是 wine-1.5.6

linux发行版是openSUSE 12.2

Linux 版本 3.4.47-2.38-desktop #1 SMP PREEMPT Fri May 31 20:17:40 UTC 2013 (3961086) x86_64 x86_64 x86_64 GNU/Linux

Cpu Intel(R) Core(TM)2 双核 CPU T9400 @ 2.53GHz

4

1 回答 1

1

这是 Wine 中的一个已知错误。

你可以在这里阅读更多:http: //osdir.com/ml/wine-bugs/2013-07/msg01794.html

于 2014-02-15T00:03:10.340 回答