Env: Windows 10 64 Bit, Visual Studio Express 2013. Ich habe Microsoft Office 2013 und 2003 installiert. Und fügen Sie Microsoft Office 11.0 object library
hinzu und Microsoft Word 11.0 object library
Referenzen. Aber funktioniert nicht. Der Versuch, Microsoft.Office.Interop.Word über die Microsoft Word 11.0-Objektbibliothek zu verwenden, führt zu einem Kompilierungsfehler
Ich habe versucht, dass, wenn ich Microsoft Word 11.0 object library
zu Microsoft Word 15.0 object library
und alles ändern ist ok.but ich für Word 2003 arbeiten muß, ja, was soll ich tun?
Code:
using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
using Word = Microsoft.Office.Interop.Word;
namespace readDOC {
class Program {
static void Main(string[] args) {
string cd = Directory.GetCurrentDirectory();
Word.Application word = new Word.Application();
List<string> dirs = new List<string>();
foreach (string dir in Directory.GetFiles(@".", "*.doc?")) {
if (dir.IndexOf('~') == -1) {
dirs.Add(cd + dir.Substring(1));
}
}
foreach (string fn in dirs) {
Word.Document docs = word.Documents.Open(fn);
try {
docs.Protect(Word.WdProtectionType.wdAllowOnlyReading);
Console.WriteLine(@"OK:{0}.", fn);
} catch (Exception e) {
Console.WriteLine(@"NOT OK:{0}.", fn);
} finally {
docs.Close();
}
}
word.Quit();
Console.WriteLine("Press any key to finish");
Console.ReadLine();
}
}
}
Was funktioniert nicht? Was ist der Fehler? Bitte posten Sie den * full * exception text, dh benutzen Sie 'Exception.ToString()'. Für alle, die wir wissen, erhalten Sie möglicherweise eine Datei nicht gefunden Fehler –
BTW Sie * kann * nicht öffnen eine bestimmte Version, wie [hier erklärt] (http://stackoverflow.com/questions/12073152/how-to-open- spezifische-Version-des-Wortes-2007-2010-in-Excel). Dies ist nicht spezifisch für das Wort, so funktioniert COM/OLE. Jede COM-Anwendung registriert alle vorherigen Schnittstellen. Wenn Sie also nach 11.0 fragen, erhalten Sie die dafür registrierte Anwendung, dh Word 2013. –
Warum möchten Sie trotzdem mit 2003 interoperieren? Sie brauchen das nicht, um 'doc' statt' docx' Dateien zu erzeugen - Sie können das Format angeben, in dem durch Interop gespeichert werden soll. Außerdem benutzen immer noch sehr wenige Leute das alte Format. 'docx' ist bereits 7 Jahre alt. Sie könnten 'docx' Dateien mit dem OpenXML SDK erzeugen, ohne dass Word installiert ist. –