2009-03-14 12 views
-2

i ohne Datenverbindung verwenden, um eine Microsoft Word-Datei lesen möchten,Datei Eingang optput

+0

Können Sie in Ihrer Frage etwas genauer sein? –

Antwort

2

".doc" ist kein einfaches textbasiertes Dateiformat. Sie müssen Interop für Manuuplation verwenden.

Schließen Sie die COM-Bibliothek "Microsoft Word 12.0 Object Library" ein. Erstellen Sie eine ApplicationClass und verwenden Sie die Eigenschaft Dokumente, um Ihr Dokument zu öffnen.

 object wordPath = null; 
     object missing = System.Reflection.Missing.Value; 

     wordPath = @"C:\sample.doc"; 

     // Create Interop object 
     ApplicationClass word = new ApplicationClass(); 
     word.Visible = false; 

     // Open document 
     Document doc = word.Documents.Open(ref wordPath, 
      ref missing, 
      ref missing, 
      ref missing, 
      ref missing, 
      ref missing, 
      ref missing, 
      ref missing, 
      ref missing, 
      ref missing, 
      ref missing, 
      ref missing, 
      ref missing, 
      ref missing, 
      ref missing, 
      ref missing); 

     // Set document as active for interaction 
     doc.Activate(); 

     // Select the whole content of the word document 
     word.Selection.WholeStory(); 

     // Get the text from the document 
     string text = word.Selection.Text; 

Es gibt eine sehr gute Einführung bei der blog of Scott C. Reynolds.

+0

Ich möchte Excel-Datei von Listview zu E-Mail-ID von Excel-Datei suchen ... Ich versuche, dies zu tun ... aber ich weiß nicht, die Art der Codierung von Excel ich meine Datenformate ... wie kann ich lesen a Excel-Datei zum Suchen von E-Mail-ID ... Ich möchte keine Datenverbindung verwenden – ankush

+0

wie für Word gibt es auch eine Objektbibliothek für Excel. Der Code sollte sehr ähnlich sein. Mit dem Arbeitsblatt-Objekt können Sie einen Bereich erhalten. Dieser Bereich hat eine Texteigenschaft. aber ich denke, die Verwendung von Datenverbindung macht es viel einfacher ... –

+0

Bit rot hat den Blogeintrag von Scott C. Reynolds genommen, aber zum Glück haben wir Way back machine: http://web.archive.org/web/ 20100504173106/http: //www.scottcreynolds.com/archive/2007/05/03/c-and-word-interop---a-few-tips.aspx – FooF

1

Es hängt davon ab, Stream mehrere Konstrukteure hat, haben einen Blick auf:

public StreamReader(Stream stream, bool detectEncodingFromByteOrderMarks) 

public StreamReader(Stream stream, Encoding encoding) 

Aber vielleicht sollten Sie erklären, was Sie meinen mit "doc file"

1

Wenn Sie mit "Doc" meinen "Word 2003 Dokument", dann ist es nicht eine einfache Textdatei zu beginnen - es ist ein binäres Dateiformat. Ich bin mir nicht sicher, ob es irgendwo dokumentiert ist, obwohl Projekte wie Open Office es offensichtlich umgegraben haben.

Wenn mit "doc" Sie etwas anderes meinen, bitte klären.

1

Word-Dokumente verwenden die Erweiterung .doc und können optional in einem XML-basierten Format gespeichert werden. Wenn Sie dies stattdessen tun können, können Sie eine XML-Parsing-Bibliothek verwenden, um den Inhalt abzurufen. Das ganze Schema ist ziemlich kompliziert, aber Sie können einige nützliche Dinge daraus auf einfache Weise extrahieren.

0
object wordPath = null; 
    object missing = System.Reflection.Missing.Value; 

wordPath = @"C:\sample.doc"; 

// Create Interop object 
ApplicationClass word = new ApplicationClass(); 
word.Visible = false; 

// Open document 
Document doc = word.Documents.Open(ref wordPath, 
            ref missing, 
            ref missing, 
            ref missing, 
            ref missing, 
            ref missing, 
            ref missing, 
            ref missing, 
            ref missing, 
            ref missing, 
            ref missing, 
            ref missing, 
            ref missing, 
            ref missing, 
            ref missing, 
            ref missing); 

// Set document as active for interaction 
doc.Activate(); 

// Select the whole content of the word document 
word.Selection.WholeStory(); 

// Get the text from the document 
string text = word.Selection.Text;