由于太可怕而无法提及的原因,我希望能够在 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